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