J'ai un objet (exemple ci-dessous) que je convertis en tableau mais le code de conversion supprime la clé et j'ai besoin de référencer la clé dans le futur pour chaque boucle mais je n'arrive pas à trouver comment conserver la clé.
let json = { "6250": { "property1": "...", "property2": "..." }, "6177": { "property1": "...", "property2": "..." }, "5870": { "property1": "...", "property2": "..." }, "4297": { "property1": "...", "property2": "..." }, "5743": { "property1": "...", "property2": "..." } } function json2array(json){ var result = []; var keys = Object.keys(json); keys.forEach(function(key){ result.push(json[key]); }); return result; } var array = json2array(json); array.forEach(function(elem, i) { Output.push(name, elem["property1"], elem["property2"]]); });
le " nom
" doit être 6250
sur la première boucle par exemple.
3 Réponses :
C'est le moyen le meilleur et le plus propre d'itérer un json, j'espère que cela vous aidera.
let dataJson = { "6250": { "property1": "...", "property2": "..." }, "6177": { "property1": "...", "property2": "..." }, "5870": { "property1": "...", "property2": "..." }, "4297": { "property1": "...", "property2": "..." }, "5743": { "property1": "...", "property2": "..." } } for (let x in dataJson){ //x is the current key console.log(x); //getting the values of the current key console.log(dataJson[x]); }
J'ai l'impression qu'itérer à travers le json est la voie à suivre, mais je ne peux pas le comprendre. j'ai juste besoin de finir avec output.push ([ID, propert1, property2]) et je n'arrive pas à y arriver
J'espère que je comprends bien votre problème. Pour obtenir toutes les valeurs dans un seul tableau, vous pouvez utiliser un Array.reduce sur Object.keys comme ceci:
let json = { "6250": { "property1": "...", "property2": "..." }, "6177": { "property1": "...", "property2": "..." }, "5870": { "property1": "...", "property2": "..." }, "4297": { "property1": "...", "property2": "..." }, "5743": { "property1": "...", "property2": "..." } } let result = Object.keys(json).reduce((r,c) => { r.push(c, ...Object.values(json[c])) return r }, []) console.log(result)
Êtes-vous sûr qu'il s'agit d'un tableau et non d'un objet? Il semble que vous ayez une erreur de syntaxe. Je veux dire, êtes-vous sûr que le premier
[
est vraiment un[
et non un{
?Pourquoi le dernier
objet
n'a pas unID
comme les autres, veuillez revoir votre structure, clarifier s'il s'agit d'untableau
d'objets ou simplement unobjet
.mis à jour le code pour clarification. Merci pour l'aide!