JSONを整形してからdiffをとるtool、diff-with-jsonを作った。
github.com JSONをjq commandに通して整形し、colordiffが在れば其れを、無ければdiffを使って差分を表示する。
// a1.json {"m":42,"n":57}
// a2.json {"m":42,"n":"parrot"}
.nを57から"parrot"に変へたものだ。此れをdiffで diff -u -L a1.json -L a2.json a1.json a2.json
として差分を出すと斯う成って了ふ。
--- a1.json +++ a2.json @@ -1 +1 @@ -{"m":42,"n":57} +{"m":42,"n":"parrot"}
JSONの構造は全く無視される。代はりにdiff-with-jsonを使へば diff-with-json -L a1.json -L a2.json a1.json a2.json
として、
--- a1.json +++ a2.json @@ -1,4 +1,4 @@ { "m": 42, - "n": 57 + "n": "parrot" }
JSONの構造を保った差分が見られる。
情報をJSONで、一行に圧縮してGitやSVNに入れてゐる場合に好く使へる。特に svn diff
と共に使ふ樣に作ってある。svn diff --diff-cmd diff-with-json
と–diff-cmd optionとしてdiff-with-jsonを指定してやれば、SVNに一行にして格納してゐるJSONの差分が見易い。
使ふ時はjq commandと、diff或いはcolordiff commandが必要だ。
Crystalで作った。