1. ホーム
  2. javascript

[解決済み] 単純なJSONパースエラー、何が悪かったのかわからない

2022-02-08 18:26:11

質問

javascriptで用意したJSONのモックデータがあり、後で使おうと思っていたのですが、プロジェクトを実行すると以下のようなエラーがコンソールに表示されるようです。

追記:ページは空で、現在はscriptタグのみです。JSONオブジェクトを準備してから何かしたいのですが。

ジャバスクリプトです。

var text = '{cinemaList: [{cinemaName: "Causeway Point",locationLat: 0,locationLong: 0,dateList: [{showDate: "Sep26, 1995",timeSlotList: [{showTime: "4.00 PM"},{showTime: "5.00 PM"}]}]},{cinemaName: "JEM"}]}';
var response = JSON.parse(text);
console.log(response);

エラーです。

SyntaxError: JSON Parse error: Expected '}'
parseTestTimeSlot.jsp:19
(anonymous function)TestTimeSlot.jsp:19

自分のしたことに間違いはないと思うのですが。もし誰かが私の状況に光を当てるのに十分親切であれば、それは非常に高く評価されるでしょう ありがとうございます。

解決するには?

さて、あなたのjsonは無効なフォーマットです。以下のようなツールを使ってください。 jsonlint を使用して、json をデバッグしてください。

Jsonは非常に厳密なフォーマットを持っています。あなたの場合、キーを引用符で囲んでいませんが、これは無効です。正しいjsonは次のようになります。

{
    "cinemaList": [
        {
            "cinemaName": "Causeway Point",
            "locationLat": 0,
            "locationLong": 0,
            "dateList": [
                {
                    "showDate": "Sep26, 1995",
                    "timeSlotList": [
                        {
                            "showTime": "4.00 PM"
                        },
                        {
                            "showTime": "5.00 PM"
                        }
                    ]
                }
            ]
        },
        {
            "cinemaName": "JEM"
        }
    ]
}


参照 json.org には、jsonがどのようにあるべきかということに関する優れたグラフがいくつかあります。ここで関係するルールは

object  -> {} | { members }
members -> pair | pair , members
pair    -> string : value
string  -> "" | " chars "