¿Cómo acceder al nombre / valor del objeto JSON?

function (data) { //add values based on activity type //data = JSON.parse(data); //alert(abc.Phone1); alert(data.myName) alert(data.toString()); if (activityType == "Phone") { } return; }, 

Como puede ver, esta función de callback $.ajax toma los datos JSON del controlador.

Por ejemplo:

[{"name":"myName" ,"address": "myAddress" }]

En este caso, mi primera alerta que me da una ventana emergente de alerta indefinida y segunda / tercera aparece con:

[{"name":"myName" ,"address": "myAddress" }]

¿Cómo puedo acceder al valor por nombre para que mi primera alerta se myName con myName que es el valor del name ?

En lugar de analizar JSON, puedes hacer lo siguiente:

 $.ajax({ .. dataType: 'json' // using json, jquery will make parse for you }); 

Para acceder a una propiedad de su JSON haga lo siguiente:

 data[0].name; data[0].address; 

Por qué necesita data[0] porque los datos son una matriz, por lo que para su recuperación de contenido necesita data[0] (primer elemento), lo que le da un objeto {"name":"myName" ,"address": "myAddress" } .

Y para acceder a la propiedad de una regla de objeto es:

 Object.property 

o algunas veces

 Object["property"] // in some case 

Así que tú necesitas

data[0].name y así sucesivamente para obtener lo que desea.


Si tu no

set dataType: json entonces necesita analizarlos usando $.parseJSON() y recuperar datos como los de arriba.

El JSON que estás recibiendo está en cadena. Tienes que convertirlo en objeto JSON. Has comentado la línea de código más importante.

 data = JSON.parse(data); 

O si estás usando jQuery

 data = $.parseJSON(data) 

Si su respuesta es como {'customer':{'first_name':'John','last_name':'Cena'}}

 var d = JSON.parse(response); alert(d.customer.first_name); // contains "John" 

Gracias,

Deberías hacer

 alert(data[0].name); //Take the property name of the first array 

y no

  alert(data.myName) 

jQuery debería poder olfatear el tipo de datos por usted incluso si no lo configura así que no necesita JSON.parse.

violín aquí

http://jsfiddle.net/H2yN6/

Prueba este código …

 function (data) { var json = jQuery.parseJSON(data); alert( json.name ); } 

Creo que deberías mencionar dataType: 'json' en ajax config y para acceder a ese valor:

 data[0].name 

Aquí hay un consejo amistoso. Use algo como Chrome Developer Tools o Firebug for Firefox para inspeccionar sus llamadas y resultados de Ajax.

También es posible que desee invertir algo de tiempo en comprender una biblioteca de ayuda como Underscore , que complementa a jQuery y le ofrece más de 60 funciones útiles para manipular objetos de datos con JavaScript.