ERROR - 更新 2026-06-25
JSON Unexpected token の原因と直し方
JSON.parse の Unexpected token、末尾カンマ、シングルクォート、HTML レスポンス混入を順番に切り分ける実務向けガイド。
JSONフォーマッター・エラーチェッカーを開くすぐ分かる答え
Unexpected token は、JSON として読めない文字や構文が見つかったときに出るエラーです。原因は大きく分けると、JSON の書き方そのものが間違っている場合と、API が JSON ではないレスポンスを返している場合があります。
最初に見るべき順番は、エラー位置、直前の文字、レスポンスの先頭、Content-Type です。
よくある原因
| 症状 | よくある原因 | 最初に見る場所 |
|---|---|---|
Unexpected token } | 末尾のカンマ | 閉じ括弧の直前 |
| `Unexpected token '`` | シングルクォート | プロパティ名と文字列 |
Unexpected token < | HTML エラーページ | レスポンスの先頭 |
Unexpected end of JSON input | JSON が途中で切れている | 最後の括弧、通信ログ |
position 0 | 先頭が JSON ではない | 1 文字目と HTTP ステータス |
確認手順
- エラーに表示された
line、column、positionを確認します。 - JSON フォーマッター・エラーチェッカー に本文を貼り付けます。
- エラー位置の前後を見て、末尾カンマ、引用符、閉じ括弧を確認します。
- API レスポンスなら、本文の先頭が
{または[で始まるか確認します。 Content-Typeがapplication/jsonか、HTTP ステータスが 200 系かを確認します。
壊れた例
{
"name": "FixData",
"tools": ["csv", "json",]
}
配列の最後に余分なカンマがあるため、JSON としては不正です。
修正例:
{
"name": "FixData",
"tools": ["csv", "json"]
}
API でよくある落とし穴
JSON の構文だけを見ても直らない場合は、API 側のレスポンスを疑います。認証エラー、404、500、リダイレクト、WAF のブロック画面が HTML として返ってくると、JavaScript 側では Unexpected token < のように見えることがあります。
この場合は JSON を整形する前に、HTTP ステータス、レスポンスヘッダー、本文の先頭 200 文字を確認してください。
実務 FAQ
JSON ではシングルクォートを使えますか?
使えません。JSON のプロパティ名と文字列はダブルクォートで囲む必要があります。
JavaScript のオブジェクトと JSON は同じですか?
似ていますが同じではありません。JavaScript では許される書き方でも、JSON としては不正な場合があります。
Unexpected token < は JSON の記号ミスですか?
多くの場合は違います。HTML が返ってきている可能性が高いので、API のステータスコード、認証、エラーページを確認します。
まずどこを直すべきですか?
JSON 本文が本当に返ってきているかを確認し、その後にエラー位置の前後を直します。API 問題と JSON 構文問題を分けると、原因を早く見つけられます。
関連ツール
- JSON フォーマッター・エラーチェッカー: JSON を整形し、エラー位置と原因候補を確認できます。
更新日
2026-06-25
参考にした公式文書
本文の判断基準を確認するために参照した公式文書です。
- SyntaxError: JSON.parse: bad parsingMDN Web Docs - 確認日: 2026-06-25