[英]How to make another nested json with keys from a nested json
來自源的字符串來自JSON對象中的碎片JSON對象,我想將此JSON結構轉換為另一個簡單的JSON結構:
{
"nestA":{
"a":"link",
"b":2711
},
"nestB":{
"a":"img",
"b":4165
}
}
它可以變成像
{
"key":"nestA"
"a":"link"
"b":711
},
{
"key":"nestB"
"a":"img"
"b":165
}
//convert json string into an object var json = '{"nestA":{"a":"link","b":2711},"nestB":{"a":"img","b":4165}}' var sourceObject = JSON.parse(json); //get a list of the object keys var keys = Object.keys(sourceObject); //create a new array to hold our output var array = []; //loop through our keys adding them to our array in the format we want keys.forEach(function(key){ var nest = sourceObject[key]; nest.key = key; array.push(nest); }); //convert our array back to json var result = JSON.stringify(array); console.log(result);
使用JSON時,最好先對其進行解析,修改,然后再將其轉換回JSON:
var orgObj = JSON.parse(orgJSON);
var newArr = [];
for( var key in orgObj){
var temp = { key: key };
Object.assign( temp, orgObj[key]);
newArr.push(temp);
}
var newJSON = JSON.stringify(newArr);
假設要使用數組。 請清理所需的JSON。
不使用es6的for循環可能是:
for( var key in orgObj){
orgObj[key].key = key;
newArr.push( orgObj[key] );
}
但是orgObj
會被修改。
var json = [{ "nestA":{ "a":"link", "b":2711 }, "nestB":{ "a":"img", "b":4165 } }]; var arr = []; json.forEach(function(v) { Object.keys(v).forEach(c => arr.push(v[c])); arr.forEach((b, x) => b['key'] = Object.keys(v)[x]); }); console.log(arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.