web-dev-qa-db-fra.com

Obtenir la valeur de clé de la liste de JSON dans NodeJS

Je reçois l'objet JSON sous forme de liste d'objets:

result=[{"key1":"value1","key2":"value2"}]

J'essaie de récupérer les valeurs de cette liste dans Node.js. J'ai utilisé JSON.stringify(result) mais j'ai échoué. J'ai essayé d'itérer la liste en utilisant for(var key in result) sans succès, car elle affiche chaque élément sous forme de clé.

Est-ce que quelqu'un est confronté à un problème similaire ou est passé par là? S'il te plait, oriente moi dans la bonne direction.

7
user1662039

Si votre résultat est une chaîne, alors:

var obj = JSON.parse(result);
var keys = Object.keys(obj);
for (var i = 0; i < keys.length; i++) {
  console.log(obj[keys[i]]);
}
11
Florent B.

OK, en supposant que result est une chaîne, la première chose à faire est de la convertir (désérialiser) en un objet JavaScript. Un bon moyen de le faire serait:

array = JSON.parse(result)

Ensuite, vous parcourez chaque élément du tableau, et pour chaque élément, vous pouvez parcourir les clés comme suit:

for(var idx in array) {
  var item = array[idx];
  for(var key in item) {
    var value = item[key];
  }
}
2
Chitharanjan Das

On dirait que vous pointez le mauvais objet . Soit comme 

var result = [{"key1":"value1","key2":"value2"}];
for(var key in result[0]){ alert(key);}

ou

var keys = Object.keys([{"key1":"value1","key2":"value2"}][0]);
alert(keys);

2
vinayakj

essayez ce code:

For result=[{"key1":"value1","key2":"value2"}]

Vous trouverez ci-dessous les valeurs pour chaque clé:

console.log(result[0].key1)

console.log(result[0].key2)
1
Shiva

Ne serait-ce pas simplement:

let obj = JSON.parse(result);
let arrValues = Object.values(obj);

ce qui vous donnerait un tableau de juste les valeurs à parcourir.

1
Avalanchd

Une approche un peu différente:

let result=[{"key1":"value1","key2":"value2"}]
for(let i of result){
    console.log("i is: ",i)
    console.log("key is: ",Object.keys(i));
    console.log("value is: ",Object.keys(i).map(key => i[key])) // Object.values can be used as well in newer versions.
}
0
pride