価格が変わり、項目が増減した
商品の JSON で、価格が 100 から 120 に変わり、在庫の項目が消え、色の項目が増えた典型的な例です。変更・削除・追加が 1 か所ずつ、パスつきで並びます。
入力
左の JSON(変更前)
{"name":"A","price":100,"stock":5}右の JSON(変更後)
{"name":"A","price":120,"color":"red"}1 と 1.0 のように、書き方が違っても数として等しい値は同じとみなす
はい
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 判定 | 差あり(3 か所) |
|---|---|
| 追加 | 1 か所 |
| 削除 | 1 か所 |
| 変更 | 1 か所 |
| 型の変化 | 0 か所 |
差のある場所の一覧
| パス(JSON Pointer) | 種別 | 左の値 | 右の値 |
|---|---|---|---|
| /price | 変更 | 100 | 120 |
| /stock | 削除 | 5 | |
| /color | 追加 | "red" |
検算(この結果になる理由)
name は同じ A なので差なしです。price は数値の 100 と 120 で同じ種類のまま中身が違うので /price が変更、stock は右にないので /stock が削除、color は左にないので /color が追加で、各 1 か所の計 3 か所になります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 配列は添字(位置)ごとに比べます。要素の順序が入れ替わっても同じ内容とみなす比較や、id による要素の突き合わせはしません。
- 数は 2 の 53 乗を超える整数や、桁数の多い小数では、数として等しいかの判定が正確でないことがあります。そのときは「数として等しい値は同じとみなす」を外して、書かれた文字で比べてください。
- RFC 6902(JSON Patch)の形式の出力や、パッチを適用した結果の生成はしません。違いの一覧だけです。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
ご利用にあたって
- 比較の対象は JSON の構文と値の型・中身に限ります。項目の意味や、変更が正しいかどうかは判断しません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。