2016-11-11 166 views
-3

我需要改變JSON結構,但我掙扎如何做到這一點,而且我不知道我是否需要創建一個新的對象或者我可以對當前一個剛工作?如何更改JSON結構在JavaScript

反正這是我想改變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}, 
    ... 
    ] 
} 
+0

http://www.w3schools.com/js/js_json.asp –

回答

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 => { 
 
\t return {key : k, values : obj[k]} 
 
}).shift(); 
 

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

+0

雖然這是理想的答案,我會如果OP被允許分享他的努力很喜歡。 – Rajesh

+0

哇!只有3行。先生,非常感謝你。 – user1239980

0

從你的問題,我的理解是你期待一個「關鍵:價值」格式。但你的JSON已經只有這種格式。

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

在上面的代碼中,start代表鍵,數組是值。您可以使用「object.start」訪問該數組。