実用ガイド · ウェブとコード

JSONのキー順:オブジェクトと配列の比較

プロパティ順と配列順の違いを解説し、差分パス、型、数値、重複キーを確認します。

順序のないオブジェクトと順序のある配列

JSONオブジェクトはプロパティの集まり、配列は順序のある列です。プロパティの並べ替えは同値になり得ますが、配列要素の入れ替えはデータを変えます。

型とJSON Pointerのパスを比較する

型を先に確認します。数字の文字列は数値ではなく、nullはプロパティ欠落とは異なります。JSON Pointerは名前中のスラッシュとチルダをエスケープして変更位置を示します。

JSONのキー順:オブジェクトと配列の比較
  1. 入力

    {"price":10,"tags":["a","b"]} {"tags":["a","c"],"price":10}

  2. 計算の手順

    方法を選んで実行する

  3. 結果

    /tags/1: "b" → "c"

この手順を試す

JSON比較:構造の差分を確認

このガイド内で例を読み込み、ツールを実行し、入力を変えて結果を比較できます。2つ目の実験では別の条件を試します。

再現できるサンプル

priceとtagsのプロパティ順だけが違えば同値です。配列の2番目がbからcへ変わる場合、/tags/1が差分位置です。添字はゼロから始まります。

ツールを開く

プロパティの順序だけを変える

2つ目の例は価格と配列を保ち、プロパティの順序だけを変えています。差分はゼロになるはずです。次に配列要素を逆にすると、インデックスのパスに差分が現れます。

ブラウザー内で処理し、データはアップロードしません。

値を設定

値を設定

JSONごとに100,000文字、深さ60、値10,000個以内。差分は500件まで表示。数値は1,000桁・正規化指数±10,000以内で正確に比較します。

結果

値を入力すると結果を確認できます。

/tags/1の変更を見つける

priceとtagsのプロパティ順だけが違えば同値です。配列の2番目がbからcへ変わる場合、/tags/1が差分位置です。添字はゼロから始まります。

利用例

入力
{"price":10,"tags":["a","b"]} {"tags":["a","c"],"price":10}
結果
/tags/1: "b" → "c"

重複キーと正確な数値

重複キーはパーサーによって扱いが異なるため先に解消します。数値は二進丸めなしで比較し、1と1.0は同値です。スキーマ検証、IDによる照合、配列の並べ替えは行いません。

これは例の入力値で、実際の事例の測定値ではありません。結果は実際のツールと同じ計算エンジンを使います。ガイドの計算手順と比較し、確認後にチェックを付けてください。

計算方法と制限
項目値
このツールにはどのような制限がありますか?JSONごとに100,000文字、深さ60、値10,000個以内。差分は500件まで表示。数値は1,000桁・正規化指数±10,000以内で正確に比較します。
処理とプライバシー入力内容と結果はブラウザー内で処理し、サーバーには送信しません。集計統計が有効な場合は、ツール名と処理の成否だけを記録し、内容は記録しません。

出典

関連ツールを使う

JSON比較:構造の差分を確認

お気に入り