javascript - 我一直得到“Uncaught SyntaxError:Unexpected token o”

我正在尝试学习一些HTML/CSS/javascript,所以我给自己写了一个教学项目。
其想法是在JSON文件中包含一些词汇表,然后将其加载到表中。我设法将文件装入并打印出它的一个值,然后开始编写代码将值装入表中。
做了这些之后,我开始出错,所以我删除了所有我写的代码,只留下一行代码(以前工作过的同一行代码)。只有错误仍然存在。
错误如下:

Uncaught SyntaxError: Unexpected token o
(anonymous function)script.js:10
jQuery.Callbacks.firejquery-1.7.js:1064
jQuery.Callbacks.self.fireWithjquery-1.7.js:1182
donejquery-1.7.js:7454
jQuery.ajaxTransport.send.callback

我的javascript代码包含在一个单独的文件中,只是这样:
function loadPageIntoDiv(){
    document.getElementById("wokabWeeks").style.display = "block";
}

function loadWokab(){
    //also tried getJSON which threw the same error
    jQuery.get('wokab.json', function(data) {
        var glacier = JSON.parse(data);
    });
}

我的json文件现在只有以下内容:
[
    {
        "english": "bag",
        "kana": "kaban",
        "kanji": "K"
    },

    {
        "english": "glasses",
        "kana": "megane",
        "kanji": "M"
    }
]

现在,错误报告在第11行,即var glacier = JSON.parse(data);行。
当我删除JSON文件时,我得到错误:“gethttp://.../wokab.json404(not found)”,所以我知道它正在加载它(或者至少正在尝试加载它)。


最佳答案:

看起来jquery对数据类型有猜测。它执行JSON解析,即使您没有调用getjson()——然后当您尝试对一个对象调用json.parse()时,就会得到错误。
有关进一步的解释,请参见Aditya Mittal's answer

评论