sortarage
@sortarage
Я тучка-тучка-тучка, я вовсе не медведь

Как выгрузить данные из JSON в локальный html?

Вечер добрый.

Есть json-файлик playback.json с вот такой структурой:

{
    "playing": true,
    "song": {
        "title": "Can't Get You out of My Head",
        "artist": "Jack Lukeman",
        "album": "Sunday Independent",
        "albumArt": "https://lh3.googleusercontent.com/q8vGPE-zyi0Kr6XzhHijz3-Nu0bPflB2wfSSJIfyIIxAYr8rouf8PWnni_LFMrp3tmHu1sCMVA"
    },
    "rating": {
        "liked": false,
        "disliked": false
    },
    "time": {
        "current": 101576,
        "total": 185000
    },
    "songLyrics": null,
    "shuffle": "NO_SHUFFLE",
    "repeat": "NO_REPEAT"
}


Мне нужно из него выгрузить в HTML-файл название/трек/обложку, чтобы потом из этого файлика подтягивать в трансляцию. Соответственно, нужно чтобы и содержимое файлика менялось при смене песни. Проблема в том, что я не совсем понимаю как это сделать, ибо мой вариант после пары часов мучений:

$(function(){
    $.getJSON('playback.json', function(data) {
            for(var i=0;i<data.song.length;i++){
                $('#song').append('<tr><td>' + data.song[i].title);
            }
    });
});


совершенно не работает. Буду благодарен любой помощи или готов оплатить как мелкий заказ :)
  • Вопрос задан
  • 786 просмотров
Пригласить эксперта
Ответы на вопрос 2
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
Возможно, ваш исходный json отдается как строка в html, а не как объект json.
Попробуйте сделать так:
$.getJSON('playback.json', function(data) {
data = JSON.parse(data);
...

если станет норм - то проблема в этом
Ответ написан
Deonisius
@Deonisius
Родился в 11110110111 году, 11000 января.
Работа с объектами несколько отличается от работы с массивами (массивоподобными объектами)
$(function() {
    $.getJSON('playback.json', function(data) {
        for (var key in data.song) {
            if (data.song.hasOwnProperty(key)) {
                $('#song').append('<tr><td>' + data.song[key]);
            }
        }
    });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы