2009-10-30 12 views
5

Considere el siguiente conjunto de objetos JSON:Javascript matriz multi-nivel de objetos JSON - cómo acceder par clave-valor en el segundo nivel o superior

myList = [ 
    {title:"Parent1", 
     children:[{childname:"Child11"}, 
        {childname:"Child12"}], 
     cars:[{carname:"Car11"}, 
       {carname:"Car12"}] 
    }, 
    {title:"Parent2", 
     children:[{childname:"Child21"}, 
        {childname:"Child22"}], 
     cars:[{carname:"Car21"}, 
       {carname:"Car22"}] 
    } 
]; 

¿Cómo se puede acceder al "Child21" en javascript? Las siguientes opciones no funcionan:

var myString = myList[1].children[0].childname; //Does not work 
var myString = myList[1]["children"][0].childname; //Does not work 
+2

UGH *** ¡Formato de código por favor! – Zoidberg

+3

Su primer ejemplo 'myList [1] .children [0] .childname' * does * work. –

+0

Quieres decir carname ... right crecentfresh ... Ponlo en una respuesta y yo votaré por él – Zoidberg

Respuesta

9

Esto funcionó bien para mí:

myList[1].children[0].childname 

Esto también es normal:

myList[1]["children"][0].childname; 

En total,

<html> 
<body> 
<script> 
var myList = [ 
    {title:"Parent1", 
     children:[{childname:"Child11"}, 
        {childname:"Child12"}], 
     cars:[{carname:"Car11"}, 
       {carname:"Car12"}] 
    }, 
    {title:"Parent2", 
     children:[{childname:"Child21"}, 
        {childname:"Child22"}], 
     cars:[{carname:"Car21"}, 
       {carname:"Car22"}] 
    } 
]; 
alert (myList[1].children[0].childname); 
</script> 
</body> 
</html> 
+0

+1 a usted y no a los demás debido al ejemplo de HTML + respuesta anterior de 5 minutos. – Seb

0

hace trabajo ...

alert(myList[1].children[0].childname); 
1

var miCadena = myList [1] .children [0] .childname;

En Firebug de Firefox funciona

+0

Esto es correcto ... – Jonline

0

Su primera opción ...

var myString = myList[1].children[0].childname; 

debería funcionar bien.

Cuestiones relacionadas