Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2014, 21:11
Новичок на форуме
Отправить личное сообщение для jsnoob4ik Посмотреть профиль Найти все сообщения от jsnoob4ik
 
Регистрация: 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>


На выходе получаю пустую страницу
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2014, 21:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jsnoob4ik,
15 строка
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2014, 21:20
Новичок на форуме
Отправить личное сообщение для jsnoob4ik Посмотреть профиль Найти все сообщения от jsnoob4ik
 
Регистрация: 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>

Все равно пустую страницу отдает.
Ответить с цитированием
  #4 (permalink)  
Старый 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.
Ответить с цитированием
  #5 (permalink)  
Старый 18.12.2014, 21:34
Новичок на форуме
Отправить личное сообщение для jsnoob4ik Посмотреть профиль Найти все сообщения от jsnoob4ik
 
Регистрация: 18.12.2014
Сообщений: 6

json данные находятся в отдельном файле. test.json Проверил Ваш код, он отрабатывает, но не полноценно. Не выводятся Фото3, Фото4
Ответить с цитированием
  #6 (permalink)  
Старый 18.12.2014, 22:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от jsnoob4ik
Не выводятся Фото3, Фото4
а вы их не выводите как они сами что-ли покажутся
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2014, 22:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jsnoob4ik,
добавил вывод строка 83
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2014, 22:51
Новичок на форуме
Отправить личное сообщение для jsnoob4ik Посмотреть профиль Найти все сообщения от jsnoob4ik
 
Регистрация: 18.12.2014
Сообщений: 6

Спасибо, действительно работает (в том виде что Вы прислали). Но с подгрузкой из отдельного файла почему то не хочет работать. Не подскажите в чем проблема?
Ответить с цитированием
  #9 (permalink)  
Старый 18.12.2014, 22:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jsnoob4ik,
скорее всего сервер присылает не строку а обьект -- вам же виднее что приходит в дата
Ответить с цитированием
  #10 (permalink)  
Старый 18.12.2014, 23:39
Новичок на форуме
Отправить личное сообщение для jsnoob4ik Посмотреть профиль Найти все сообщения от jsnoob4ik
 
Регистрация: 18.12.2014
Сообщений: 6

Все верно. Но как же сделать так, что бы он присылал строку а не объект?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
JSON данные принять на стороне клиента tenatin Общие вопросы Javascript 5 05.03.2014 16:32
ajax $.post вместо json проблема данные не приходят Sadist_dead AJAX и COMET 2 12.07.2012 17:59
json данные не грузятся в windows XP но грузятся в w7 rustamaha Элементы интерфейса 2 28.11.2011 12:35
Очень нужно.. Отправка HTML куски в JSON от сервера используя Ajax bivnikus jQuery 8 26.10.2010 23:54