18.12.2014, 21:11
|
Новичок на форуме
|
|
Регистрация: 18.12.2014
Сообщений: 6
|
|
Данные из json в html
Имеется:
{
"items": [
{
"id": "01",
"text": "TEXT",
"likes": {
"count": 1,
"can_like": 1
},
"date": 0000,
"comments": {
"count": 1,
"can_post": 1
},
"attachments": [
{
"type": "photo",
"photo": {
"photo_130": "http://1.jpg",
"date": 0000,
"id": 01
}
}
]
},
{
"id": "02",
"text": "TEXT2",
"likes": {
"count": 2,
"can_like": 2
},
"date": 0000,
"comments": {
"count": 2,
"can_post": 2
},
"attachments": [
{
"type": "photo",
"photo": {
"photo_130": "http://2.jpg",
"date": 0000,
"id": 02
}
},
{
"type": "photo",
"photo": {
"photo_130": "http://3.jpg",
"date": 0000,
"id": 03
}
},
{
"type": "photo",
"photo": {
"photo_130": "http://4.jpg",
"date": 0000,
"id": 04
}
}
]
}
]
}
<div id="box"></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$.getJSON('test.json', function(data) {
var output="<div>";
for (var i in data.items) {
output+="<div>" + data.items[i].id + "</div>";
output+="<div>" + data.items[i].text + "</div>";
output+="<div>" + data.items[i].likes.count + "</div>";
output+="<div>" + data.items[i].comments.count + "</div>";
output+="<div>" + data.items[i].attachments[0].photo.photo_130 + "</div>";
}
output+="</div>";
}
document.getElementById("box").innerHTML=output;
});
</script>
На выходе получаю пустую страницу
|
|
18.12.2014, 21:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
jsnoob4ik,
15 строка
|
|
18.12.2014, 21:20
|
Новичок на форуме
|
|
Регистрация: 18.12.2014
Сообщений: 6
|
|
Исправил. Теперь так выглядит
<div id="box"></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$.getJSON('test.json', function(data) {
var output="<div>";
for (var i in data.items) {
output+="<div>" + data.items[i].id + "</div>";
output+="<div>" + data.items[i].text + "</div>";
output+="<div>" + data.items[i].likes.count + "</div>";
output+="<div>" + data.items[i].comments.count + "</div>";
/*output+="<div>" + data.items[i].attachments[0].photo.photo_130 + "</div>";*/
}
output+="</div>";
document.getElementById("box").innerHTML=output;
});
</script>
Все равно пустую страницу отдает.
|
|
18.12.2014, 21:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
jsnoob4ik,
а data есть?
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body> <div id="box"></div>
<script>
var data = {
"items": [
{
"id": "01",
"text": "TEXT",
"likes": {
"count": 1,
"can_like": 1
},
"date": 0000,
"comments": {
"count": 1,
"can_post": 1
},
"attachments": [
{
"type": "photo",
"photo": {
"photo_130": "http://1.jpg",
"date": 0000,
"id": 01
}
}
]
},
{
"id": "02",
"text": "TEXT2",
"likes": {
"count": 2,
"can_like": 2
},
"date": 0000,
"comments": {
"count": 2,
"can_post": 2
},
"attachments": [
{
"type": "photo",
"photo": {
"photo_130": "http://2.jpg",
"date": 0000,
"id": 02
}
},
{
"type": "photo",
"photo": {
"photo_130": "http://3.jpg",
"date": 0000,
"id": 03
}
},
{
"type": "photo",
"photo": {
"photo_130": "http://4.jpg",
"date": 0000,
"id": 04
}
}
]
}
]
}
var output="<div>";
for (var i in data.items) {
output+="<div>" + data.items[i].id + "</div>";
output+="<div>" + data.items[i].text + "</div>";
output+="<div>" + data.items[i].likes.count + "</div>";
output+="<div>" + data.items[i].comments.count + "</div>";
for (var k in data.items[i].attachments) output+="<div>" + data.items[i].attachments[k].photo.photo_130 + "</div>";
}
output+="</div>";
document.getElementById("box").innerHTML=output;
</script>
</body>
</html>
Последний раз редактировалось рони, 18.12.2014 в 22:28.
|
|
18.12.2014, 21:34
|
Новичок на форуме
|
|
Регистрация: 18.12.2014
Сообщений: 6
|
|
json данные находятся в отдельном файле. test.json Проверил Ваш код, он отрабатывает, но не полноценно. Не выводятся Фото3, Фото4
|
|
18.12.2014, 22:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от jsnoob4ik
|
Не выводятся Фото3, Фото4
|
а вы их не выводите как они сами что-ли покажутся
|
|
18.12.2014, 22:29
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
jsnoob4ik,
добавил вывод строка 83
|
|
18.12.2014, 22:51
|
Новичок на форуме
|
|
Регистрация: 18.12.2014
Сообщений: 6
|
|
Спасибо, действительно работает (в том виде что Вы прислали). Но с подгрузкой из отдельного файла почему то не хочет работать. Не подскажите в чем проблема?
|
|
18.12.2014, 22:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
jsnoob4ik,
скорее всего сервер присылает не строку а обьект -- вам же виднее что приходит в дата
|
|
18.12.2014, 23:39
|
Новичок на форуме
|
|
Регистрация: 18.12.2014
Сообщений: 6
|
|
Все верно. Но как же сделать так, что бы он присылал строку а не объект?
|
|
|
|