Je sais qu'il y a plusieurs fils sur ce sujet mais j'ai parcouru plus de 30 fils sans succès. J'ai réussi à analyser une réponse JSON pour qu'elle ressemble à ceci:
console.log(json[0].id);
en utilisant ce code
console.log(json[0]);
console.log(json.id);
Maintenant, je veux accéder au " id "," name "etc. ET le" id "et" name "pour la balise" entity ". Jusqu'à présent, j'ai essayé:
let json = JSON.parse(body);
console.log(json);
qui renvoie tous les deux undefined
J'ai également essayé
{
"1": {
"id": "1",
"name": "Fruit",
.
.
.
"entities": {
"1": {
"id": "1",
"name": "blue bird",
.
.
.
"status": "1"
},
"2": {
ce qui donne une erreur
Des idées?
3 Réponses :
Dans ce cas, votre première clé est 1 , vous pouvez donc y accéder avec json[1 .
const json = {
"1": {
"id": "1",
"name": "Fruit"
},
"2": {
"id": "2",
"name": "Veggies"
}
};
console.log(json[1]);
Dans ce json, vous pouvez accéder à l'identifiant par
{
"elements": [
{ "id" : 1, "name" : "fruit" },
{ "id" : 2, "name" : "vegetable" }
]
}
Mais je pense que tout d'abord votre json n'est pas correctement écrit, vous devriez avoir quelque chose comme
json.1.id
comme ça, json.elements est une collection / tableau, et vous pouvez boucler, compter, ou toute autre chose que vous ne pourrez pas faire car votre json ressemble à une liste super lourde de propriétés différentes (il ne sait pas que json.1 et json.2 sont le même type d'objets.
const jsonData = JSON.parse(body);
for (const i in jsonData) {
for (const j in jsonData[i]) {
console.log('${i}: ${jsonData[i][j]}');
}
}
ressemble à votre première clé est
json ["1"]LOL solution facile haha merci!
Bien sûr, je vais ajouter comme réponse