プログラムからJSONを出力する場合、Object内のkeyの順番が固定されている保証はない。二つのJSONを比較したい場合、出力のたびにkeyの順番が違うとdiffを使ってもうまく比較できない。
jqのオプションで--sort-keysオプションを使用すると、各オブジェクトのkeyを並び替えて出力してくれるため、JSONをjqで整形したうえでdiffするといい。
--sort-keys / -S:
Output the fields of each object with the keys in sorted order.
$ diff <(./JSON出力プログラム | jq . --sort-keys) <(./JSON出力プログラム | jq . --sort-keys)