我有以下JSON结构:
{"actions":[
{"parameters":[
{"name":"ISSUE_NUM","value":"11574"}
]},
{"causes":[
{"shortDescription":"Started by remote host 127.0.0.1"
}],
//[...]
}],
//[...]
}
是否有一种简单的方法可以将上面的内容转换为对象(将不必要的数组替换为对象):
{"actions":{
"parameters":{"name":"ISSUE_NUM","value":"11574"},
"causes":{"shortDescription":"Started by remote host 127.0.0.1"},
//[...]
}},
//[...]
}
答案 0 :(得分:1)
您可以尝试:
function transform(o) {
if (typeof o !== 'object') { return o; }
for (var k in o) {
if (Array.isArray(o[k])) {
var arr = o[k];
o[k] = {};
for (var i in arr) {
for (var j in Object.keys(arr[i])) {
var kk = Object.keys(arr[i])[j];
o[k][kk] = arr[i][kk];
}
}
o[k] = transform(o[k]);
}
}
return o;
}
我觉得我刚做完作业。下次尝试告诉我们你已经尝试过(或假装你做过)。如果你想以某种方式处理重复的密钥,那么这就是练习。