1. ホーム
  2. ジャバスクリプト

[解決済み】「Uncaught SyntaxError」が何度も出てきます。予期しないトークン o" が表示される

2022-03-30 01:27:02

質問

私はhtml/css/javascriptを学びたいので、自分自身の教育プロジェクトを書いているところです。

このアイデアは、jsonファイルに含まれるいくつかの語彙をテーブルに読み込ませることでした。私はファイルを読み込み、その値の1つを出力することに成功し、その後、テーブルに値を読み込むコードを書き始めました。

その後、エラーが出始めたので、書いたコードをすべて削除し、1行だけ(以前動作していたのと同じ行)を残しました...ただ、エラーはまだ残っています。

エラーの内容は以下の通りです。

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ファイルを削除すると、次のようなエラーが発生します: "GET http://.../wokab.json 404 (Not Found)"ですから、読み込んでいる(あるいは少なくとも読み込もうとしている)ことがわかります。

解決方法は?

jQueryはデータ型について推測しているようです。getJSON()を呼び出していないのにJSONのパースを行い、オブジェクトに対してJSON.parse()を呼び出そうとすると、エラーが発生します。

さらに詳しい説明は Aditya Mittalの回答 .