JSON構造の比較
オブジェクトキーの順序とスペースを無視し、JSONの追加・削除・変更を比較します。配列の位置と大数の違いも確認します。
入力は保存や送信は行われません。結果の共有には要約のみが含まれます。
結果
入力後、実行するとここに結果が表示されます。
元のレポートを表示・直接コピー
結果を共有
ツールリンクと結果テキストを一緒に共有します。結果にはURLを入れません。以下の内容を確認して共有してください。
使用例と処理基準
前回 {"name":"ツール","count":2,"tags":["a","b"]}と次回 {"count":3,"name":"ツール","tags":["a","c"],"active":true}を比較すると /count の変更、/tags/1 の変更、/active の追加の3つの違いがあります。nameのキーの順序は結果に影響しません。
よくある質問
行の比較で何が違うのでしょうか?
JSON構文を先に読み、オブジェクトのキー・配列の位置・値のタイプを比較します。スペースとオブジェクトキーの順序は無視されます。文字列「1」と数値1は異なり、配列は順序を保ち位置ごとに比較されるため、途中で挿入すると後続項目も変更される可能性があります。
大きな整数と小数は正確に比較できますか?
数字トークンを小数点外しにはしません。9007199254740992と9007199254740993は異なり、1、1.0、1e0は同じです。-0と0も同じ値として比較します。比較される数字指数は絶対値が99,999,999までサポートします。
JSONのパスと制限は何ですか?
パスはJSON Pointerであり、/は〜1、〜は〜0でエスケープされます。空のパスは文書全体です。各入力は200,000文字・深さ100・値20,000個までを読み、重複キーは拒否されます。画面は100の差、レポートは1,000までを表示し、全体の差数と切り捨ての有無を別途通知します。
計算基準と参考資料
- RFC 8259 — JSON
JSON構文と相互運用時の数値精度の考慮事項
- RFC 6901 — JSON Pointer
オブジェクトキー・配列の位置ルート及び~0・~1のエスケープ