RFC 8259 から読む JSON の文法境界
RFC 8259 の文法生成規則を平易な言葉に置き換えます。どの文字をそのまま書けるのか、どれをエスケープしなければならないのか、そして仕様が意図的に余地を残している箇所はどこか。
初級約 11 分で読めます2026-10-30 更新
RFC 8259 と ECMA-404 を出発点に、JSON の文法・型・エンコーディング・パースの境界を整理します。あらゆる JSON 作業の土台となるカテゴリです。
6 件の記事RFC 8259 の文法生成規則を平易な言葉に置き換えます。どの文字をそのまま書けるのか、どれをエスケープしなければならないのか、そして仕様が意図的に余地を残している箇所はどこか。
JSON の型は 6 つだけですが、そのどれもがデータを静かに作り変えてしまいます。本記事では数値・文字列・null の落とし穴を一度に扱います。
JSON.parse のエラーを行と文字位置に変換し、末尾カンマ、単一引用符、コメント、制御文字、BOM、途中切れの六つの原因を順に除外します。
メモ帳での文字化けから JSON ファイルを開く三つの方法まで、編集後に壊れていないことを確認する手順と、巨大なファイルが開かないときの対処法を解説します。
JSON.parse の正確なメッセージから原因を引きます。Chrome・Firefox・Safari にまたがる 12 の頻出エラー、HTML エラーページ、途中切れ、二重パースを含みます。
4 MB の 1 行 JSON が「1 行目 23611 列目」と報告しても何の助けにもなりません。ローカルで実測したサンプルをもとに、Python・Node・jq がなぜ 3 つの異なる数値を出すのか、文字オフセットでどう壊れたバイトへ直行するのか、そして文法修正後にデータを静かに壊す 3 つの罠を解説します。