2010-12-13 12 views
15

Tengo un JSONstring(?) que he devuelto de $.ajax() y lo llamé data. Algunos de los valores están vacíos y necesito agregar valores a algunas de las claves y enviarlas a mi script PHP.Agregar o cambiar un valor de la clave JSON con jquery o javascript

Accedo a los valores existentes por data.keyName. ¿Cómo agrego o cambio los valores de ciertas teclas en "datos"?

Esto es lo que parece data.

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

Si accede a los valores con 'data.keyName', ya no tiene una * cadena JSON *. Usted tiene un * objeto JavaScript *. JSON ya ha sido analizado en un objeto para usted. –

+0

Gracias por explicar eso, Ates. Estaba confundido acerca de eso. – JCam

Respuesta

29

Una vez que ha decodificado el JSON, el resultado es un objeto JavaScript. Solo manipúlalo como lo harías con cualquier otro objeto. Por ejemplo:

data.busNum = 12345; 
... 
+0

¿Por qué no lo intenté? ¡Gracias! – JCam

+1

duplica la clave – elvenbyte

0
data.userID = "10"; 
+0

Si el ID de usuario existe como clave, esta respuesta lo duplica. – elvenbyte

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

+1 Para hacer alusión a 'eliminar'. –

+1

Esto también puede ser útil. Gran punto – JCam

2

igual que lo haría para cualquier otra variable, que acaba de establecer que

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

Parece que si la llave se guarda en una variable. data.key = value no funcionará.

Debe utilizar data[key] = value

Ejemplo:

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

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

console.log(data); 

Resultado:

{ 
    "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 está teniendo todo el nombre de la clave

intento en jsfiddle

Cuestiones relacionadas