JSON を整形してから diff をとる tool、diff-with-json を作った。
github.com JSON を jq command に通して整形し、colordiff が在れば其れを、無ければ diff を使って差分を表示する。
次の a1.json と a2.json が在ったとしやう。
// 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 で作った。