JSON
Watson
node-red

【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法

アプリケーションが自動生成したJSONファイルに改行が一つもなく、扱いに困ったことはありませんか?
私は結構よくあります。例えばWatson Conversationのダイアログファイルとか、Node-REDのフロー定義ファイルなど。
こうしたファイルがあると、人間がファイルを読めない、手修正ができない、githubなどで変更管理ができないなど、よくないことだらけです。
本当にマメ知識なのですが、そういう場合の対応方法のメモです。
jqというツールを使って対応します。

Macの場合、jqコマンドはbrewを使って導入可能です。

$ brew install jq

jqコマンドは使い方に多少クセがあります。使う時は以下の呼び出し方をして下さい。
original.jsonが改行のないオリジナルファイル、modified.jsonが見やすく整形されたものです。

$ cat original.json | jq . > modified.json

整形後のサンプル(Node-REDのフローファイル)の一部を以下に添付します。

[
  {
    "id": "4c125775.97ce28",
    "type": "tab",
    "label": "open_cv",
    "disabled": false,
    "info": ""
  },
  {
    "id": "82732063.5ec84",
    "type": "tab",
    "label": "tts",
    "disabled": false,
    "info": ""
  },
  {
    "id": "32f3d15f.0d9bbe",
    "type": "tab",
    "label": "stt",
    "disabled": false,
    "info": ""
  },
  ... (以下略)