jqでJSONのrecordもfieldもsortする

やりたいこと

record の順番も field の順番もバラバラな JSON があるんだけど、この JSON 同士を比較してどこに差があるのかを知りたい。

方法

毎度おなじみ jq を使う。

  • –sort-keys オプションを使うと field の方を sort できる
  • 'sort()' あるいは 'sort_by()' という function で record を sort できる

ということでまとめると

jq --sort_by('.<key>') --sort-keys <file>

と叩くと JSON の record と field 両方が sort できるので、sort 済みの JSON 同士を比較すれば human readable な diff を生成できるようになります。

More