未捕获的SyntaxError:JSON中位置1错误的意外令牌o错误

时间:2018-07-26 09:38:21

标签: jquery json

我想添加一些功能,其中当您选择事件选项时,它将在日历下方显示一个列表。我使用了select选项,当它更改值时,它将填充一个列表。我正在使用jQuery和JSON文件,这是代码,但返回错误。

JSON format example: {
    "title": "",
    "start": "",
    "tags": "",
    "imageurl": "",
    "products": [
      {
        "name": "",
        "url": "",
        "time": "",
        "location": ""
      }

     ]
     }
  

VM66:1未捕获的SyntaxError:JSON中位置1处的意外令牌o           在JSON.parse()           在Object.success(eventcalendarjson.html:610)           在n(jquery.min.js:2)           在Object.fireWith [as resolveWith](jquery.min.js:2)           在w(jquery.min.js:4)           在XMLHttpRequest.d(jquery.min.js:4)

$("#search").change(function () {
        $("html, body").animate({ scrollTop: $(".calendar").offset().top }, 1500);
        var selectedEvent = $("#search").val();

        $.getJSON('events.json', function (data) {
            var ourData = JSON.parse(data);
            render(selectedEvent, ourData);
        });
    });

    function render(selectedEvent, data) {
        $(".order-details-table").empty();
        $(data).each(function (i, v) {                
            if (selectedEvent == 'all' || v.tags == selectedEvent) {
                if (v.products)
                    $(v.products).each(function (index, p) {
                        $(".order-details-table").append('<tr><td class="o-box-name"><a name="detailsevent">' + p.name + '</a></td><td class="o-box-name">' + v.title + '<br><small>' + p.time + '</small><small>&nbsp' + p.location + '</small></td><td><a href="' + p.url + '" class="cancel-del-text" target=_"blank">Register!</a></td></tr>');
                    });
            }                
        });
    }

1 个答案:

答案 0 :(得分:1)

您正在解析已经解析的数据,

尝试直接使用“数据”

$("#search").change(function () {
        $("html, body").animate({ scrollTop: $(".calendar").offset().top }, 1500);
        var selectedEvent = $("#search").val();

        $.getJSON('events.json', function (data) {

            render(selectedEvent, data);
        });
    });