実用ガイド · ウェブとコード
JSONのキー順:オブジェクトと配列の比較
プロパティ順と配列順の違いを解説し、差分パス、型、数値、重複キーを確認します。
作成 Puffinmint · 更新日
順序のないオブジェクトと順序のある配列
JSONオブジェクトはプロパティの集まり、配列は順序のある列です。プロパティの並べ替えは同値になり得ますが、配列要素の入れ替えはデータを変えます。
型とJSON Pointerのパスを比較する
型を先に確認します。数字の文字列は数値ではなく、nullはプロパティ欠落とは異なります。JSON Pointerは名前中のスラッシュとチルダをエスケープして変更位置を示します。
-
入力
{"price":10,"tags":["a","b"]} {"tags":["a","c"],"price":10} -
計算の手順
方法を選んで実行する
-
結果
/tags/1: "b" → "c"
/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以内で正確に比較します。 |
| 処理とプライバシー | 入力内容と結果はブラウザー内で処理し、サーバーには送信しません。集計統計が有効な場合は、ツール名と処理の成否だけを記録し、内容は記録しません。 |