2016-11-11 2 views
-3

Ich muss JSON-Struktur ändern, aber ich habe Schwierigkeiten, es zu tun, und ich bin mir nicht sicher, ob ich ein neues Objekt erstellen muss oder ich kann nur an der aktuellen arbeiten ?So ändern Sie die JSON-Struktur in JavaScript

Auf jeden Fall ist dies die JSON ich ändern wollen:

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

Und um dies zu ändern:

{ 
    "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 –

Antwort

2

Sie das Objekt zuordnen können und geben die neuen Werte

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

Obwohl dies die ideale Antwort ist, hätte ich mir gewünscht, wenn OP seine Bemühungen teilen durfte. – Rajesh

+0

Wow! Nur in 3 Zeilen. Vielen Dank, Sir. – user1239980

0

Von Ihrer Frage, mein Verständnis ist Sie erwarten ein "Schlüssel: Wert" -Format. Aber Sie JSON ist nur in diesem Format nur.

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

In dem obigen Code steht start für Schlüssel und das Array ist Wert. Sie können auf dieses Array mit "object.start" zugreifen.

Verwandte Themen