JSON 比較とは?
一般的なテキスト比較では、整形やインデント、キーの順序が違うだけで多くの差分が表示されてしまいます。このツールは両方を JSON の構造として解析してから比較し、本当に変わったデータだけを一覧表示します。API のリリース前後のレスポンスや、2 つの環境の設定ファイルの比較に便利です。
使い方
- 左に変更前の JSON、右に変更後の JSON を貼り付けます。「自動比較」がオンなら、すぐに差分が表示されます。
- 各差分には種類(追加・削除・変更)と JSON Path(例:
$.order.items[0].price)が表示されます。 - 差分をクリックすると左右の該当箇所が強調表示されます。「レポートをコピー」でプルリクエストや資料に貼り付けられます。
比較のルール
- オブジェクトはキーで比較:キーの順序が違っても差分にはなりません。
- 配列は位置で比較:1 番目は 1 番目と比較するため、順序が違うと変更として表示されます。
- 数値は値で比較:
1.0と1、1e2と100は同じとみなし、大きな数値も精度を失いません。オプションをオフにすると書かれたとおりに比較します。 - 文字列は内容で比較:
"中"と"中"は同じとみなします。
例
変更前 {"name":"Keyboard","price":980.00,"tags":["office","usb"]}、変更後 {"price":980,"name":"Keyboard Pro","tags":["office","bluetooth"],"color":"black"} のレポートは次のとおりです:
~ $.name: "Keyboard" → "Keyboard Pro" ~ $.tags[1]: "usb" → "bluetooth" + $.color: "black"
price は 980.00 から 980 になりましたが、値は同じなので表示されません。
よくある質問
レポート先頭の + - ~ の意味は?
+ は右側で追加された項目、- は右側で削除された項目、~ は両方にあるが値が違う項目です。矢印の左が変更前の値、右が変更後の値です。
配列の順序を入れ替えただけで差分が多く出るのはなぜ?
JSON の配列には順序があり、[1, 2] と [2, 1] は別のデータなので、位置ごとに比較します。順序が重要でない場合は、JSON を出力するプログラム側で並べ替えてから比較してください。
片方が正しい JSON でない場合は?
メッセージに左右どちらが誤っているかと、その行・列が表示されます。「エラー位置へ移動」で該当箇所を確認できます。カンマの過不足などは JSON 整形の「修復」で直せます。