2010-12-13 2 views
15

Ich habe eine JSONstring(?), die ich von $.ajax() zurückgegeben und es data benannt habe. Einige der Werte sind leer, und ich muss einigen Schlüsseln Werte hinzufügen und sie an mein PHP-Skript zurücksenden.Hinzufügen oder Ändern eines Werts von JSON-Schlüssel mit jquery oder Javascript

I Zugriff auf die vorhandenen Werte von data.keyName. Wie kann ich die Werte bestimmter Schlüssel in "Daten" hinzufügen oder ändern?

So sieht data aus.

{ 
    "ID":"48", 
    "userID":"0", 
    "address":"750 North High Street", 
    "city":"Columbus", 
    "state":"OH", 
    "zip":"43215", 
    "lat":"39.977673", 
    "lng":"-83.003357", 
    "busNumber":"55", 
    "isClaimed":"N", 
    "whereFound":"", 
    "busNum":"", 
    "email":"", 
    "fname":"", 
    "lname":"", 
    "comments":"" 
} 
+1

Wenn Sie auf die Werte mit 'data.keyName' zugreifen, haben Sie keine * JSON-Zeichenfolge * mehr. Sie haben ein * JavaScript-Objekt *. JSON wurde bereits in ein Objekt für Sie geparst. –

+0

Danke für die Erklärung, Ates. Ich war darüber verwirrt. – JCam

Antwort

29

Sobald Sie das JSON dekodiert haben, ist das Ergebnis ein JavaScript-Objekt. Manipuliere es einfach wie jedes andere Objekt. Zum Beispiel:

data.busNum = 12345; 
... 
+0

Warum habe ich das nicht versucht ... Danke! – JCam

+1

dupliziert den Schlüssel – elvenbyte

0
data.userID = "10"; 
+0

Wenn BenutzerID als Schlüssel vorhanden ist, wird diese Antwort dupliziert. – elvenbyte

16
var temp = data.oldKey; // or data['oldKey'] 
data.newKey = temp; 
delete data.oldKey; 
+5

+1 Für Hinweise auf 'löschen'. –

+1

Dies könnte auch nützlich sein. Großer Punkt. – JCam

2

Genau wie Sie für jede andere Variable würde, setzen Sie es gerade

alert(data.ID); 
data.ID = "bar"; //dot notation 
alert(data.ID);  
data.userID = 123456; 
data["address"] = "123 some street"; //bracket notation 
1

Es scheint, wenn Sie Ihre Schlüssel in einer Variablen gespeichert wird. data.key = value wird nicht funktionieren.

sollten Sie verwenden data[key] = value

Beispiel:

data = {key1:'v1', key2:'v2'}; 

var mykey = 'key1'; 
data.mykey = 'newv1'; 
data[mykey] = 'newV2'; 

console.log(data); 

Ergebnis:

{ 
    "key1": "newV2", 
    "key2": "v2", 
    "mykey": "newv1" 
} 
0
var y_axis_name=[]; 

for(var point in jsonData[0].data) 
       { 
       y_axis_name.push(point); 

       } 

y_axis_name

versuchen, alle Schlüsselnamen aufist mit

Verwandte Themen