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
objetn'a pas unIDcomme les autres, veuillez revoir votre structure, clarifier s'il s'agit d'untableaud'objets ou simplement unobjet.mis à jour le code pour clarification. Merci pour l'aide!