[英]Changing and/or merging two JSON Objects structures
Lets say we are given a following JSON:假设我们得到了以下 JSON:
{
"a": {
"title": {
"text": "text a"
}
},
"b": {
"title": {
"text": "text b"
}
}
}
How could I convert and/or merge this into the following structure:我如何将其转换和/或合并到以下结构中:
{
"title": {
"text": {
"a": "text a",
"b": "text b"
}
}
}
or a different example:或不同的例子:
let aObject = {
"level1": {
"level2": {
"level3": "text a"
}
}
}
let bObject = {
"level1": {
"level2": {
"level3": "text b"
}
}
}
let cObject = {
"level1": {
"level2": {
"level3": "text c"
}
}
}
into进入
{
"level1": {
"level2": {
"level3": {
"aObject": "text a",
"bObject": "text b",
"cObject": "text c"
}
}
}
}
It might be very easy as I am missing a keyword describing this feature, or it might be complicated to archive this.这可能很容易,因为我缺少描述此功能的关键字,或者归档它可能很复杂。 Any help is appreciated.
任何帮助表示赞赏。
Working example, looking for simpler solution:工作示例,寻找更简单的解决方案:
let object = { "a": { "title": { "text": "text a" } }, "b": { "title": { "text": "text b" } } } function reduce(node, object, result = {}) { for (let key in object) { if (typeof result[key] === 'undefined') { result[key] = {} } if (typeof object[key] === 'string') { result[key][node] = object[key] } else { reduce(node, object[key], result[key]) } } return result } let result = Object.entries(object).reduce((result, [key, value]) => { return reduce(key, value, result) }, {}) console.log(result)
Can do in this way.:)可以这样做。:)
let obj = { a: { title: { text: "text a" } }, b: { title: { text: "text b" } } }; let test = {}; test["title"] = {}; test.title["text"] = {}; Object.keys(obj).forEach((key) => { test.title.text[key] = `text ${key}`; }); console.log(test);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.