web-dev-qa-db-fra.com

javascript dit que la propriété d'objet JSON est indéfinie bien que ce ne soit pas

J'ai un objet json que j'imprime à l'écran (en utilisant alert () - function):

alert(object);

Voici le résultat:

 enter image description here

Ensuite, je veux imprimer la valeur de l'id à l'écran: 

    alert(object["id"]); 

Le résultat est le suivant:

 enter image description here

Comme vous pouvez le constater, la valeur de la clé "id" n’est pas (!!!) indéfinie.

Qu'est ce qui se passe ici?!

4
steady_progress

On dirait que votre objet JSON n'est pas vraiment un objet, c'est une chaîne JSON. pour l'utiliser comme objet, vous devez utiliser une fonction de désérialisation telle que JSON.parse(obj). De nombreux frameworks ont leur propre implémentation pour désérialiser une chaîne JSON. 
Quand vous essayez de faire alert(obj) avec un objet réel, le résultat serait [object Object] ou quelque chose comme ça

12
Yuval Perelman

Si object n'est pas JSON.parse(), procédez comme suit:

var result = JSON.parse(object);
alert(result.id);

Si Object est déjà JSON.parse(), utilisez uniquement:

alert(object.id);
4
Mahmoud Ali Kassem

En JavaScript, les propriétés des objets sont accessibles avec. opérateur ou avec indexation de tableau associatif utilisant []. C'est à dire. object.property est équivalent à object["property"]

Tu peux essayer: 

var obj = JSON.parse(Object);
alert(obj.id); 
0
Kevin Mencos

Vous devrez affecter cela à une var, puis y accéder.

var object = {id: "someId"};
console.log(object);
alert(object["id"]);

0
Pritam Banerjee