JSON比較
2つのJSONを整形しながら構造差分を確認できるツール。APIレスポンス、設定ファイル、ログの比較でキー順に惑わされず中身の違いを確認できる。
使い方
- JSON AとJSON Bへ比較対象を貼り付ける。
- 構文エラーがある場合はエラーメッセージを確認する。
- 整形済みJSONと構造一致・不一致を確認する。
JSON比較
構造一致
{
"name": "Restring",
"tools": [
"diff"
]
}{
"tools": [
"diff"
],
"name": "Restring"
}こんな用途に
- APIレスポンスの変更前後を比較したいとき。
- 設定JSONや翻訳JSONの差分を確認したいとき。
- キー順の違いを除外し、値や構造の違いだけ確認したいとき。
仕組み
- JSON.parseで構文検証し、成功した値をインデント付きで表示。
- オブジェクトのキーを再帰的にソートしてから比較するため、キー順だけの違いは無視。
確認ポイント
- まず構文エラーを解消してから比較すると、構造差分を正確に見られる。
- 配列の順序は意味を持つため、並び替えがあるJSONは結果の読み方に注意が必要。
手元でやるには
キー順を揃えて比較
必要環境: jq、diff、bash/zshなどプロセス置換に対応したシェルdiff -u <(jq -S . a.json) <(jq -S . b.json)関連ツール
よくある質問
JSONのキー順が違う場合も差分になる?
オブジェクトのキー順は揃えて比較するため、キー順だけの違いは差分として扱わない。
JSON構文エラーも確認できる?
JSON.parseで検証し、構文エラーがある場合は比較前にエラー内容を表示する。