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