0

Приветствую! Столкнулся с такой проблемой. Есть страничка "http://blabla.ru/brands", где единственное что выводится, это JSON в таком виде

{"date":"17-07-2017","title":"test2","description":"test1","url":"test3"}

Далее есть страничка, где описан мой активный календарь.

скрипт из него

<script>
    $(function(){
        var data = [];
        $.getJSON( "http://blabla.ru/brands", function(JSONItems){
            data = JSON.parse(JSONItems);
        });
        $('#eventCalendar').eventCalendar({
            jsonData: data,
            eventsjson: 'data.json',
            jsonDateFormat: 'human',
            startWeekOnMonday: false,
            openEventInNewWindow: true,
            dateFormat: 'DD-MM-YYYY',
            showDescription: false,
            locales: {
                locale: "ru",
                txt_noEvents: "Нет запланированных событий",
                txt_SpecificEvents_prev: "",
                txt_SpecificEvents_after: "события:",
                txt_NextEvents: "Следующие события:",
                txt_GoToEventUrl: "Смотреть",
                moment: {
                    "months" : [ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
                        "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ],
                    "monthsShort" : [ "Янв", "Фев", "Мар", "Апр", "Май", "Июн",
                        "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек" ],
                    "weekdays" : [ "Воскресенье", "Понедельник","Вторник","Среда","Четверг",
                        "Пятница","Суббота" ],
                    "weekdaysShort" : [ "Вс","Пн","Вт","Ср","Чт",
                        "Пт","Сб" ],
                    "weekdaysMin" : [ "Вс","Пн","Вт","Ср","Чт",
                        "Пт","Сб" ]
                }
            }
        });
    });
</script>

Дело в том, что по ссылке не видит данные JSON.

Подскажите, как парсить данные оттуда?

1 Answers1

1

Ошибка в том, что на момент создания календаря переменная data пуста. Перенесите код создания календаря в событие успешного окончания AJAX-запроса:

$.getJSON( "http://blabla.ru/brands", 
   function(JSONItems){
       data = JSONItems;
        // Создаем календарь
        $('#eventCalendar').eventCalendar({
           .....
         });
     });
  • К сожалению, ругается на синтаксическую ошибку в data = JSON.parse(JSONItems);, коей там быть не должно. Может для парсера какая библиотека нужна? – Alex Koryagin Jul 17 '17 at 12:29
  • 1
    JSON.parse используется для разбора строковых значений; у вас же уже готовый JSON, так что парсинг не требуется вовсе (достаточно data = JSONItems). – Pavel Dmitrenko Jul 17 '17 at 12:33
  • Все равно есть ошибки, скорее всего по структуре нужно проверить. Ответ на свой вопрос получил, спасибо. – Alex Koryagin Jul 17 '17 at 12:44
  • upd Разобрался, проблема была из-за не верного формата даты – Alex Koryagin Jul 17 '17 at 13:02