簡體   English   中英

如何使用嵌套json中的鍵制作另一個嵌套json

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM