同じ入力を要素ごとに比べる
直前と同じ入力を「要素ごとに比べる」にした例です。2 件目の要素(番号 1)ごと無くなるため、qty の欠損に加えて $.items[1] の欠損が出ます。
入力
旧版の JSON
{"items":[{"sku":"A","qty":1},{"sku":"B"}]}新版の JSON
{"items":[{"sku":"C"}]}配列の比べ方
要素ごとに比べる([0]・[1] と番号つき)
結果
エラー 0 件・警告 2 件・情報 0 件
指摘(エラー・警告・情報)
- 警告 $.items[0].qty 旧版にあった $.items[0].qty が新版にありません。この項目を使っている利用側が壊れるおそれがあります。
- 警告 $.items[1] 旧版にあった $.items[1] が新版にありません。この項目を使っている利用側が壊れるおそれがあります。
| 判定 | 欠損 2 件・型変更 0 件 |
|---|---|
| 旧版のパス数 | 7 個 |
| 新版のパス数 | 4 個 |
| 欠損 | 2 件 |
| 型変更 | 0 件 |
| 追加 | 0 件 |
| 配列の扱い | 要素ごと([0]・[1] と番号つき)に比べる |
構造の差(欠損・型変更・追加)
| パス | 判定 | 旧版の型 | 新版の型 |
|---|---|---|---|
| $.items[0].qty | 欠損 | 数値 | (なし) |
| $.items[1] | 欠損 | オブジェクト | (なし) |
検算(この結果になる理由)
要素ごとに番号を付けると旧版は $.items[0] と $.items[1] を持ち、新版は $.items[0] だけです。$.items[0].qty が欠損、$.items[1] がまるごと欠損で、その下の $.items[1].sku は親が報告済みなので重ねず、警告は 2 件です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 値そのものの違い(金額や文字列の変更)は比べません。構造(項目の有無と型)だけを見ます。値の差分は別の JSON 差分ツールを使ってください。
- 配列をまとめて比べるときは、一部の要素にしか無い項目も「ある」と数えるため、要素ごとの欠損は見つかりません。
- 数値の整数と小数(1 と 1.5)は同じ「数値」です。文字列の中身が日付かどうかなどの意味の違いは見ません。
- JSON Schema や OpenAPI 定義そのものの比較はしません。実際の応答例を貼って比べます。
ご利用にあたって
- 比べるのは貼り付けた応答例の構造だけです。実際の API の仕様や互換性の保証ではありません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。