148 votes

Comment obtenir la valeur des objets si leur nom contient des points ?

J'ai un tableau très simple (veuillez vous concentrer sur l'objet avec "points.bean.pointsBase" comme clé) :

var mydata =   
{"list":  
  [  
    {"points.bean.pointsBase":  
      [  
        {"time": 2000, "caption":"texte de légende", durée: 5000},  
        {"time": 6000, "caption":"texte de légende", durée: 3000}  
      ]  
    }  
  ]  
};  

// Habituellement, nous faisons quelque chose comme cela pour obtenir la valeur : 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // devrait afficher 2000

Cependant, malheureusement, cela n'affiche rien. Lorsque je change "points.bean.pointsBase" par quelque chose sans points dans son nom - tout fonctionne.

Cependant, je ne peux pas changer ce nom en quelque chose sans points, mais j'ai besoin d'en obtenir une valeur ? Y a-t-il des options pour l'obtenir ?

267voto

Russell Leggett Points 4562

Ce que vous voulez est:

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

En JavaScript, tout champ sur lequel vous pouvez accéder en utilisant l'opérateur ., vous pouvez y accéder en utilisant [] avec une version sous forme de chaîne du nom du champ.

34voto

z33m Points 2922

En JavaScript, les propriétés des objets peuvent être accédées avec l'opérateur . ou avec l'indexation d'un tableau associatif en utilisant []. c'est-à-dire objet.propriété est équivalent à objet["propriété"]

cela devrait fonctionner

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

26voto

TK. Points 4728

Essayer ["points.bean.pointsBase"]

21voto

Vikas s kumar Points 187

Si la clé/nom de l'objet json contient des point......! comme

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

Alors vous pouvez accéder comme suit

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X