2011-05-13 17 views
10

supongamos que tengo {"data": {"243232": {"id": "testid","name": "test" } }}Cómo obtener un valor de una variable de JSON

así que cuando hago

var a = data.243232.id; alert(a); // me da testid.

pero cuando me gusta

var c = 243232; 
    var d = data.c.id; 
    alert(d) //it gives as undefined. 

así que ¿cómo obtener el valor correcto cuando alerto d en el caso anterior, gracias.

+0

Por favor, acepte una respuesta correcta haciendo clic en el signo de interrogación verde junto a la respuesta que fue la mejor – austinbv

Respuesta

11

utilizar la otra notación var a = data['243232'].id

Recuerde que todos los objetos en JS son matrices en realidad sólo asociativos.

claves de objeto, simplemente una variable en js y por lo tanto requieren una correcta nomenclatura

la variable de nombres reglas.

  • El primer carácter debe ser una letra (mayúsculas o minúsculas) o un guión bajo (_) o un signo de dólar ($).
  • Los caracteres subsiguientes pueden ser letras, números, guiones bajos o signos de dólar en variables de JavaScript.
  • el nombre de variable JavaScript no puede ser una palabra reservada de JavaScript, ver detalles de JavaScript Reservados Caracteres

JSON normalmente utiliza una función eval() para convertir la cadena en una estructura de datos. Esto permite claves incorrectas. Si desea hacer referencia a una clave incorrecta, debe usar el método de matriz asociativa.

En cuanto a ti, además

var c = 243232; 
var d = data[c].id; 
alert(d) //it gives as undefined. 

Trabajará

+0

gracias a que funciona. – druveen

+0

gracias por compartir –

6

Uso data[c].id.

En JavaScript, .prop es azúcar sintáctica para ["prop"]. La notación de corchetes le permite usar valores que no serían válidos al usar . (como background-image) y variables.

+0

. no es realmente una referencia al []. [] y. se analizan de manera completamente diferente. La parte principal es que con la .notación, el valor se analiza como una variable clave, por lo que debe cumplir con las reglas de denominación de variables. Los [], por otro lado, se analizan como un literal o valor de cadena, que permite cualquier carácter. Echa un vistazo a JS CFG. – austinbv

Cuestiones relacionadas