Come ottenere il valore degli oggetti JSON se il suo nome contiene punti?


108

Ho un array JSON molto semplice (concentrati sull'oggetto "points.bean.pointsBase" ):

var mydata =   
{"list":  
  [  
    {"points.bean.pointsBase":  
      [  
        {"time": 2000, "caption":"caption text", duration: 5000},  
        {"time": 6000, "caption":"caption text", duration: 3000}  
      ]  
    }  
  ]  
};  

// Usually we make smth like this to get the value: 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // should display 2000

Ma, sfortunatamente, non visualizza nulla.
Quando cambio "points.bean.pointsBase" in smth senza punti nel nome - tutto funziona!

Tuttavia, non posso cambiare questo nome in nient'altro senza punti, ma devo ottenere un valore ?!
Ci sono opzioni per ottenerlo?

Risposte:


215

Quello che vuoi è:

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;

In JavaScript, qualsiasi campo a cui puoi accedere utilizzando il. operatore, è possibile accedere utilizzando [] con una versione stringa del nome del campo.


27

in javascript, è possibile accedere alle proprietà degli oggetti con. o con indicizzazione di array associativi utilizzando []. vale a dire. object.propertyè equivalente aobject["property"]

questo dovrebbe fare il trucco

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;

19

Provare ["points.bean.pointsBase"]


4

Se la chiave / nome dell'oggetto JSON contiene un punto ......! piace

var myJson = {"my.name":"vikas","my.age":27}

Di quanto puoi accedere come

myJson["my.name"]
myJson["my.age"]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.