2013-09-30 15 views
7

IPushing Daten zu JSON-Objekt JavaScript

var obj = {'x':21,'y':32,'z':43}; 

Da meine JSON Schlüssel, um dieses Objekt zu einem JSON-Array drücken wollen: Wert dynamisch kommt, kippe ich Zugriffstasten verwenden, so habe ich die Schleife Methode.

var str = {xA : []}; //declared a JSON array 

for (var key in obj) { 

    alert(' name=' + key + ' value=' + obj[key]); 

    str.xA.push({ 
     key : obj[key] 
    }) 
} 

Wenn ich die Werte alarmieren ich die Schlüssel und Werte immer richtig, aber wenn ich es auf das Array meinen Schlüssel am drängen kommt immer als ‚Schlüssel‘ statt den eigentlichen Schlüssel wie x, y, z wie im Code.

Jede Hilfe wird geschätzt.

+3

Es ist ein JavaScript-Objektliteral, NICHT JSON. – ThiefMaster

+1

Bitte verwenden Sie nicht das Wort "JSON", hier gibt es kein JSON. –

Antwort

10

Die Literalnotation lässt keine Ausdrücke für Schlüssel zu. Sie müssen zuerst das Objekt erstellen und dann stattdessen die Klammer-Notation:

var tmp = {}; 
tmp[key] = obj[key]; 
str.xA.push(tmp); 
3

Sie müssen [] Notation verwenden, sonst immer der Schlüssel Name key und nicht der Wert des Schlüssels sein.

str.xA.push({ 
    key : obj[key] 
}) 

zu

var tmp= {}; 
    tmp[key] = obj[key] 
    str.xA.push(tmp)