Попытка переноса данных с PHP. Я использую URL-адреса для отображения изображений, а затем я использую теги для изменения порядка массива, который я пытаюсь создать вызываемые данные. Я не уверен, правильно ли разбираюсь.Как JSON анализировать массив нескольких элементов?
var data = [];
function importJson(str) {
if (str == "") {
document.getElementById("content").innerHTML = "";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
data = JSON.parse(xmlhttp.response);
alert(xmlhttp.response);
alert(data);
for (var sport_index = 0; sport_index < data.sport.length; sport_index++) {
var url1 = data.sport[sport_index][1];
alert(data.sport);
}
alert(url1);
}
}
xmlhttp.open("GET", "http://server/~name/folder/many.php");
xmlhttp.responseType = "json";
xmlhttp.send();
function buildImage(imagesrc) {
var img = document.createElement('img');
img.src = imagesrc;
document.getElementById('content').appendChild(img);
}
}
xmlhttp.response выглядит следующим образом
{"sport":[{"ImagesId":"34","ImagesPath":"http:\/\/server\/~name\/folder\/images\/24-08-2014-1408868419.png","Tag":"sport"},{"ImagesId":"30","ImagesPath":"http:\/\/server\/~name\/folder\/images\/23-08-2014-1408824125.png","Tag":"sport"}],"clothes":[{"ImagesId":"33","ImagesPath":"http:\/\/server\/~name\/folder\/images\/23-08-2014-1408824179.png","Tag":"clothes"},{"ImagesId":"32","ImagesPath":"http:\/\/server\/~name\/folder\/images\/23-08-2014-1408824166.png","Tag":"clothes"}],"food":[{"ImagesId":"31","ImagesPath":"http:\/\/server\/~name\/folder\/images\/23-08-2014-1408824158.png","Tag":"food"}]}
Но данные выглядит [object Object]
и когда я пытаюсь использовать URLs для создания изображений элементы не определены.
Все правильно, за исключением, что вы должны получить доступ к свойствам объекта по имени, а не индекс. 'var url1 = data.sport [sport_index] [1]' должен быть 'var url1 = data.sport [sport_index] .ImagesPath' –
' JSON.parse() 'должно быть хорошо. Если вы не уверены в выходном объекте, вы можете попытаться отобразить его с помощью 'JSON.stringify()'. –
@cookiemonster ты был прав. – James121