Как получить эти данные с помощью AJAX из JSON? - PullRequest
0 голосов
/ 28 сентября 2019

Я использовал этот код ниже, чтобы получить данные названия / исполнителя со старой станции (https://stream.mydnic.be/status-json.xsl) с ajax:

(function worker() {
    $.ajax({
        url: host + '/status-json.xsl',
        success: function(data) {
            artist = data.icestats.source.artist;
            title = artist + ' - ' + data.icestats.source.title;
            document.title = title;
        },
        complete: function() {
            // Schedule the next request when the current one's complete
            setTimeout(worker, 3000);
        }
    });

Теперь я изменил станцию ​​и использую новуюдругой JSON-файл, который выглядит немного иначе:

"id": "station_name",
"songs":[
{
"title": "Water Silence",
"artist": "Solar Fields",
"album": "Fahrenheit Project Part Five",
"albumart": "",
"date": "1569618168"
},

Проблема в том, что теперь я получаю ' undefined ' на Заголовок и Artist с первым кодом Ajax.

Итак, я хотел бы спросить, знает ли кто-нибудь, что мне нужно изменить в первом коде Ajax для работы с новым файлом JSON и получения правильных данных названия / исполнителя.

Я очень ценю вашу помощь.

1 Ответ

0 голосов
/ 28 сентября 2019

Вы пытаетесь получить атрибут от объекта, когда он представляет собой список объектов, вам нужно выполнить итерацию массива или получить результат по индексу.

Вот так:

(function worker() {
    $.ajax({
        url: host + '/status-json.xsl',
        success: function(data) {
            //In this example you getting element by index
            artist = data.songs[0].artist;
            title = data.songs[0].title;
        },
        complete: function() {
            // Schedule the next request when the current one's complete
            setTimeout(worker, 3000);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...