項目の順序と空白だけが違う
a と b の順序を入れ替え、字下げを変えただけの 2 つの JSON を比べる例です。値はまったく同じなので、順序や空白の違いは差とみなさず、差なしという結果になります。
入力
左の JSON(変更前)
{"a":1,"b":[true,null]}右の JSON(変更後)
{
"b": [true, null],
"a": 1
}1 と 1.0 のように、書き方が違っても数として等しい値は同じとみなす
はい
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 全体 2 つの JSON に差はありません。オブジェクトの項目の並び順や、空白・改行の違いは、値の違いとして数えません(RFC 8259 4 節: オブジェクトは順序を持たない)。
| 判定 | 差なし(2 つの JSON は同じ値) |
|---|---|
| 追加 | 0 か所 |
| 削除 | 0 か所 |
| 変更 | 0 か所 |
| 型の変化 | 0 か所 |
差のある場所の一覧
| パス(JSON Pointer) | 種別 | 左の値 | 右の値 |
|---|---|---|---|
| (差なし) |
検算(この結果になる理由)
RFC 8259 4 節ではオブジェクトの項目に順序の意味を持たせません。a は 1 と 1、b は配列 [true,null] どうしで、位置ごとに true と null も同じです。空白も値ではないため差は 0 か所で、差なしの情報が 1 件です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 配列は添字(位置)ごとに比べます。要素の順序が入れ替わっても同じ内容とみなす比較や、id による要素の突き合わせはしません。
- 数は 2 の 53 乗を超える整数や、桁数の多い小数では、数として等しいかの判定が正確でないことがあります。そのときは「数として等しい値は同じとみなす」を外して、書かれた文字で比べてください。
- RFC 6902(JSON Patch)の形式の出力や、パッチを適用した結果の生成はしません。違いの一覧だけです。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
ご利用にあたって
- 比較の対象は JSON の構文と値の型・中身に限ります。項目の意味や、変更が正しいかどうかは判断しません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。