提问人:Debaditya Sen 提问时间:9/2/2023 最后编辑:Debaditya Sen 更新时间:9/3/2023 访问量:51
使用 Javascript 根据键名将子对象值合并到父键
Merge child object value to parent key based on key name using Javascript
问:
我有一个大型嵌套的JSON对象,该对象是从XML架构自动生成的。这导致创建多个密钥并将其嵌套在它们内部。children
以下代码片段描述了嵌套。
{
"attributes" : {
"name": "xml"
},
"children" : [
{
"children": [
{
"children" :[
{
"attributes":{
"min": 1,
"max": 2
}
"children":[1,2,3,4]
}
]
}
]
}
]
}
当嵌套的键名都没有任何数据丢失时,我需要将键的最内层值移动到最上面的父项。children
children
{
"attributes" : {
"name": "xml"
},
"children" : [ // ** Here
{
"children": [
{
"children" :[ // Move this whole array **
{
"attributes":{
"min": 1,
"max": 2
}
"children":[1,2,3,4]
}
]
}
]
}
]
}
我尝试了以下方法,但这不起作用。
function mergeChildToParent(jsonObj) {
for (const key in jsonObj) {
if (jsonObj.hasOwnProperty(key) && typeof jsonObj[key] === "object") {
if (jsonObj[key].hasOwnProperty("children") && jsonObj[key].value === key) {
// Push child value to parent and delete child
jsonObj[key].parentValue = jsonObj[key].value;
delete jsonObj[key].value;
}
mergeChildToParent(jsonObj[key]); // Recurse for nested objects
}
}
return jsonObj;
}
答: 暂无答案
评论
if (jsonObj[key].hasOwnProperty("value") ....
value