重複した項目名と大きすぎる整数
構文としては読めるものの、読み込む側によって結果が変わる 2 つの注意点を含む例です。項目名 id の重複と、19 桁の整数を警告として示します。
入力
JSON
{"id": 1, "id": 2, "orderNo": 9223372036854775807}字下げ
空白 4 つ
項目名(キー)を並べ替える
はい
結果
エラー 0 件・警告 2 件・情報 0 件
指摘(エラー・警告・情報)
- 警告 1 行 11 列 同じオブジェクトの中に項目名「id」が重複しています(最初は 1 行 2 列)。読み込む側によって、後の値を使う・エラーにするなど扱いが分かれます(RFC 8259 4 節)。
- 警告 1 行 31 列 整数 9223372036854775807 は 2^53−1 を超えています。JavaScript など倍精度の数値で読む環境では値が丸められます(RFC 8259 6 節)。ID なら文字列にするのが安全です。
| 判定 | 構文は正しい(注意点あり) |
|---|---|
| 一番外側の値 | オブジェクト({ }) |
| 項目(キー)の数 | 3 個 |
| 入れ子の深さ | 1 段 |
整形した JSON
{
"id": 1,
"id": 2,
"orderNo": 9223372036854775807
}
検算(この結果になる理由)
id が 2 回あり RFC 8259 4 節の「一意であるべき」に反するため警告 1 件、9223372036854775807 は 2 の 53 乗から 1 を引いた 9007199254740991 を超えるため警告 1 件です。並べ替えは同じ項目名の順序を保つので id: 1 が先に出ます。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- JSON Schema などによる内容(項目の有無・型・値の範囲)の検査はしません。構文だけを確かめます。
- 構文エラーは最初の 1 か所だけを示します。直したあとに貼り直すと、次のエラーが見つかることがあります。
- JSON Lines(1 行に 1 つの JSON)や、コメント・末尾カンマを許す JSON5・JSONC は、JSON としてはエラーになります。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
ご利用にあたって
- 検査は JSON の構文(RFC 8259)に限ります。読み込む側のソフトが独自の制限を持つ場合があります。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。