У меня есть JSON строки разбираемый (в response
вар) от AJAX:Looping через массив JSON дает "неопределенные" результаты
JSON
{
"TheArray":[
{
"AlmostThere": {
"whatWeAreLookingFor":"Hello"
}
},
{
"AlmostThere": {
"whatWeAreLookingFor":"Goodbye"
}
}
]
}
JSON разбираемый
var jsonData = JSON.parse(response); //response is the string version of the JSON code!
Теперь мне нужно петли в JSON массив, hereb y упоминается как TheArray
. Я делаю это:
LOOPING TheArray
for (var contents in jsonData["TheArray"]) {
}
И там внутри, мы получаем значение whatWeAreLookingFor
элемента:
for (var contents in jsonData["TheArray"]) {
console.log(contents.whatWeAreLookingFor + "!");
}
Но есть улов! Консольные выходы ...undefined!
. - Я пробовал несколько способов сделать эту работу, например, используя contents["whatWeAreLookingFor"]
и что-нет, но я все равно получаю те же результаты.
[Не используйте 'для ... в 'for looping over Arrays] (http://stackoverflow.com/questions/242841/javascript-for-in-vs-for) - используйте регулярный цикл' for', 'forEach' или' for ... of' если вы можете использовать ES6. – joews
Подсказка: log 'contents' внутри вашей петли. Это не будет то, что вы ожидаете. – joews
'for (var contents in jsonData.TheArray) { console.log (jsonData.TheArray [содержимое] .AlmostThere.whatAwALLookingFor +"! "); } ' – Ryu