JSONはXMLと比べると見やすいですが、そのままでは可読性があまり高くありません。システム用のフォーマットだからと言えばそれまでですが、開発中などは人が読む機会も多いはずです。 そこで使ってみたいのがgronです。JSONを変換したり、grepして読みやすくしてくれるコマンドです。

gronの使い方

まずは標準の方法です。curlで試します。

$ curl http://headers.jsontest.com/
{
   "X-Cloud-Trace-Context": "0ac332002030808158c7b73a49c2040b/14780520834203559118",
   "Host": "headers.jsontest.com",
   "User-Agent": "curl/7.43.0",
   "Accept": "*/*"
}

これをgronに置き換えます。JavaScriptオブジェクトを作る形で取得できます。

$ gron http://headers.jsontest.com/
json = {};
json.Accept = "application/json";
json.Host = "headers.jsontest.com";
json["User-Agent"] = "gron/0.2";
json["X-Cloud-Trace-Context"] = "9c5c17bcb6d76b040c53663775ab1c6a/10176305454733349870";

そしてこれをgrepすると、その部分だけが抽出できます。

$ gron http://headers.jsontest.com/ | grep Host
json.Host = "headers.jsontest.com";

JavaScriptのコード風に変換させるのが面白いポイントです。これのお陰でデータ構造が分割されて分かりやすくなります。さらにgronで絞り込んだ後、その部分だけを普通のJSONとして表示させることも可能です。開発のお供にぜひ。

gronはGo製のオープンソース・ソフトウェア(MIT License)です。

tomnomnom/gron: Make JSON greppable!