null だった項目が文字列になった

旧版では未設定を null で返していた項目が、新版では文字列を返すようになった例です。型が null から文字列に変わるため型変更になり、null を前提にした判定が壊れるおそれがあります。

入力

旧版の JSON

{"memo":null}

新版の JSON

{"memo":"x"}

配列の比べ方

全要素をまとめて比べる([] として扱う)

結果

エラー 0 件・警告 1 件・情報 0 件

指摘(エラー・警告・情報)

  • 警告 $.memo $.memo の型が null から 文字列 に変わりました(RFC 8259 の値の型で比較)。
判定欠損 0 件・型変更 1 件
旧版のパス数2 個
新版のパス数2 個
欠損0 件
型変更1 件
追加0 件
配列の扱い全要素をまとめて([] として)比べる

構造の差(欠損・型変更・追加)

構造の差(欠損・型変更・追加)
パス判定旧版の型新版の型
$.memo型変更null文字列

検算(この結果になる理由)

RFC 8259 3 節では null は文字列とは別の値の種類です。$.memo の型が null から文字列に変わるので型変更が 1 件、警告 1 件になります。値が "x" である点は比べません。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 比べるのは貼り付けた応答例の構造だけです。実際の API の仕様や互換性の保証ではありません。
  • 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。

ほかの入力例