Je suis nouveau à JavaScript et je cherche à faire un pour chaque boucle de la chaîne JSON ci-dessous. J'essaie de boucler à travers chaque élément de résultat et de voir si le nom = 'Code d'erreur'. J'ai essayé de multiples variations différentes et que l'extrait ci-dessous semble être correct mais je ne peux pas l'obtenir de se présenter dans la console.
{
"Count": 136,
"Message": "Results returned successfully.",
"SearchCriteria": "VIN:xxxxxxx",
"Results": [
{
"Value": "",
"ValueId": "",
"Variable": "Suggested VIN",
"VariableId": 142
},
{
"Value": "0",
"ValueId": "0",
"Variable": "Error Code",
"VariableId": 143
},
{
"Value": "",
"ValueId": "",
"Variable": "Possible Values",
"VariableId": 144
},
{
"Value": null,
"ValueId": "",
"Variable": "Additional Error Text",
"VariableId": 156
}
]
}
4 Réponses :
J'espère que cela aidera
p>
var data = {
"Count": 136,
"Message": "Results returned successfully.",
"SearchCriteria": "VIN:xxxxxxx",
"Results": [
{
"Value": "",
"ValueId": "",
"Variable": "Suggested VIN",
"VariableId": 142
},
{
"Value": "0",
"ValueId": "0",
"Variable": "Error Code",
"VariableId": 143
},
{
"Value": "",
"ValueId": "",
"Variable": "Possible Values",
"VariableId": 144
},
{
"Value": null,
"ValueId": "",
"Variable": "Additional Error Text",
"VariableId": 156
}
]
}
data.Results.forEach(item => {
if(item.Variable === 'Error Code') console.log(item);
});Vous avez des erreurs sur le code que vous avez présenté:
Vos données ont En outre, vous bouclez via voir ci-dessous p> p> résultats code>, variable code> et (code> (et d'autres propriétés également), tous avec une première lettre majuscule, et dans votre code, vous essayez d'y accéder avec des minuscules (par exemple: data.Results code>), il est donc indéfini (JavaScript est une langue sensible à la casse), il doit être data.Results code>. p> li>
résultats code>, pas variable code>, donc le [i] code> va après " / Code>, comme ceci: data.Results [i] .variable code> p> li>
ol> var data = {
"Count": 136,
"Message": "Results returned successfully.",
"SearchCriteria": "VIN:xxxxxxx",
"Results": [{
"Value": "",
"ValueId": "",
"Variable": "Suggested VIN",
"VariableId": 142
},
{
"Value": "0",
"ValueId": "0",
"Variable": "Error Code",
"VariableId": 143
},
{
"Value": "",
"ValueId": "",
"Variable": "Possible Values",
"VariableId": 144
},
{
"Value": null,
"ValueId": "",
"Variable": "Additional Error Text",
"VariableId": 156
}
]
}
for (let i = 0; i < data.Results.length; i++) {
if (data.Results[i].Variable == 'Error Code') {
console.log(data.Results[i].Value);
}
}
Par simple pour la boucle
Premièrement, notez que JS est sensible à la casse. Cela signifie que En ce qui concerne votre question, vous n'avez pas besoin d'une boucle explicite. ici. En supposant qu'il n'y ait qu'un seul objet contenant le code d'erreur code> code>, vous pouvez utiliser la méthode p> data.results code> n'est pas le même que data.Results code> et causera des problèmes. trouver () code> pour la récupérer: p> var errors = data.Results.filter(o => o.Variable === 'Error Code');