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