如何在JavaScript

时间:2016-11-11 12:23:52

标签: javascript arrays json

我需要更改JSON结构,但我正在努力做到这一点,而且我不确定是否需要创建一个新对象,或者我可以只处理当前的对象?

无论如何这是我要改变的JSON:

{
  "start": [
     {"time": 22, "value": 324, "year": 2016},
     {"time": 142, "value": 234, "year": 2016},
     ...
  ],
  "end": [
     {"time": 123, "value": 254, "year": 2016},
     ...
  ]
}

并改为:

{
  "key": "start",
  "values": [
     {"time": 22, "value": 324, "year": 2016}, 
     {"time": 142, "value": 234, "year": 2016},
     ...
  ]
 }, {
  "key": "end",
  "values": [
     {"time": 123, "value": 254, "year": 2016},
     ...
  ]
}

2 个答案:

答案 0 :(得分:2)

您可以映射对象并返回新值

var obj = {
  "start": [
     {"time": 22, "value": 324, "year": 2016},
     {"time": 142, "value": 234, "year": 2016}
  ],
  "end": [
     {"time": 123, "value": 254, "year": 2016}
  ]
}

var result = Object.keys(obj).map( k => {
	return {key : k, values : obj[k]}
}).shift();

document.body.innerHTML = '<pre>' + JSON.stringify(result, 0, 4) + '</pre>';

答案 1 :(得分:0)

从您的问题来看,我的理解是您希望获得“关键:价值”格式。但是你JSON只是那种格式。

"start": [
     {"time": 22, "value": 324, "year": 2016},
     {"time": 142, "value": 234, "year": 2016}
  ]

在上面的代码中,start表示键,数组是值。您可以使用“object.start”访问该数组。