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