Я пытаюсь проанализировать строку JSON с несколькими массивами и некоторыми парами ключ: значение. Теперь я могу получать значения из одного массива, но я хочу получать значения из другого массива. Массивы имеют одинаковые ключи, но я не могу узнать, как получить данные из второго массива.
Сценарий jQuery выглядит так:
$("a").click(function () {
var page = $(this).text();
console.log(page);
$.post("/services/gallery/getimage", {"path[]":[<%=path %>], "page": page}, function(data){
var length = data.previews.length;
console.log(length);
var html = "";
for(var i = 0; i < length; i++){
$.each(data.previews[i], function (index, value) {
html+= "<a href=\""+value+"\"><img src=\""+value+"\" alt=\""+index+"\" /></a>";
console.log("index: "+index);
console.log("value: "+value);
console.log(data.heights[i].index);
});
}
$("#gallery").html(html);
});
});
Я также пробовал некоторые изменения этого console.log(data.heights[i].index);
но по-прежнему не могут быть использованы.
Консольный выход
1
15
index: index1
value: /some/path
undefined
index: index2
value: /some/paht
undefined
и строка JSON выглядит так:
{
"previews": [
{
"index1": "/some/path"
},
{
"index2": "/some/path"
}
],
"heights": [
{
"index1": "67"
},
{
"index2": "103"
}
]
}
У меня будет больше массивов с одинаковыми индексами, поэтому будет здорово, если будет возможно проанализировать его в одном для. Спасибо за любую помощь
EDIT: Имена атрибутов динамические, а не статические. Это может быть что угодно, а не только index1, index2,...
Вы используете .index
поиска данных в объекте из массива heights
когда вы должны использовать [index]
. Итак, эта строка:
console.log(data.heights[i].index);
становится:
console.log(data.heights[i][index]);