簡體   English   中英

如何通過JS轉換數組中的json

[英]How convert json in array by JS

我需要轉換JSON數據

  [{"Date":"2014","Amount1":90,"Amount2":800},    {"Date":"2015","Amount1":110,"Amount2":300},{"Date":"2016","Amount1":3000,"Amount2":500}]

[['Date', 'Amount1', 'Amount2'],
      ['2014',  90,      800],
      ['2015',  110,      300],
      ['2016',  3000,       500]]

我該怎么做?

使用Array#reduceArray#map方法。

 var data = [{ "Date": "2014", "Amount1": 90, "Amount2": 800 }, { "Date": "2015", "Amount1": 110, "Amount2": 300 }, { "Date": "2016", "Amount1": 3000, "Amount2": 500 }]; // iterate over the array value var res = data.reduce(function(arr, o) { // push the new value to array arr.push( // generate object value array using the key array arr[0].map(function(k) { // return the property value return o[k] }) ); // return the updated array return arr; // set initial variable as array with // fist element as object property array }, [Object.keys(data[0])]); console.log(res); 

我建議為鍵使用輔助數組,保持屬性的所需順序和值的Array#map 然后將鍵應用於數組的開頭。

 var data = [{ "Date": "2014", "Amount1": 90, "Amount2": 800 }, { "Date": "2015", "Amount1": 110, "Amount2": 300 }, { "Date": "2016", "Amount1": 3000, "Amount2": 500 }], keys = Object.keys(data[0]), result = data.map(function (o) { return keys.map(function (k) { return o[k]; }); }); result.unshift(keys); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

ES6

 var data = [{ "Date": "2014", "Amount1": 90, "Amount2": 800 }, { "Date": "2015", "Amount1": 110, "Amount2": 300 }, { "Date": "2016", "Amount1": 3000, "Amount2": 500 }], keys = Object.keys(data[0]), result = data.map(o => keys.map(k => o[k])); result.unshift(keys); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

你也可以循環2次扔你的JSON對象

var obj = [{"Date":"2014","Amount1":90,"Amount2":800},{"Date":"2015","Amount1":110,"Amount2":300},{"Date":"2016","Amount1":3000,"Amount2":500}];
var result = [];
result.push(Object.keys(obj[0]));
for (var subObj in obj){
  var arr = [];
  for (var item in obj[subObj])  arr.push(obj[subObj][item]);
  result.push(arr);
}
console.log(result); // [ [ 'Date', 'Amount1', 'Amount2' ],[ '2014', 90, 800 ],[ '2015', 110, 300 ],[ '2016', 3000, 500 ] ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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