レッスン 5

よくある JSON エラー

末尾カンマ、コメント、シングルクォート、その他の頻出ミス。

無効な JSON は通常、パース時にすぐ失敗します。これらのパターンを認識すると、API 連携や設定ファイルのデバッグが速くなります。

末尾カンマ

{
  "a": 1,
  "b": 2,
}

JavaScript は 2 の後のカンマを許可しますが、JSON は許可しません} または ] の前のカンマを削除してください。

シングルクォート

{ 'name': 'Ada' }

JSON の文字列は必ずダブルクォート " を使います。

クォートされていないキー

{ name: "Ada" }

キーは文字列であり、ダブルクォートが必要です: { "name": "Ada" }

コメント

// not allowed in JSON
{ "x": 1 }

ドキュメントは README や JSON Schema の description に — インラインコメントは使えません。

無効なリテラル

  • True / False — 小文字の true / false である必要がある
  • undefined — プロパティを省略するか null を使う
  • NaN, Infinity — 有効な JSON 数値ではない

スマートクォートと不可視文字

Word や Web ページからコピーすると " "" の代わりに入ることがあります。エディタは BOM やノンブレークスペースを追加することも。パースが謎の位置エラーで失敗したら、クォートを打ち直すか、プレーンテキストエディタ経由で貼り付けてください。

JavaScript 由来の「ほぼ JSON」

開発者がオブジェクトをログ出力したり、ブラウザコンソールからコピーしたりすると、JSON に見えても関数、undefined、クォートなしキーを含むことがあります。JSON として扱う前に、必ず厳格なパーサーで通してください。

修正ワークフロー

  1. パーサーエラーの行と列を読む。
  2. 閉じ括弧の上の行で余分なカンマがないか確認する。
  3. すべての文字列とキーが " を使っているか確認する。
  4. コメントと JavaScript 専用の構文を削除する。

これらのルールは意図的に厳格です — 厳格さこそが JSON をシステム間で移植可能にします。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る