jq の入っていない環境で、JSON をフォーマットする方法

JSON をフォーマットしたいけど、jq が入っていない!ということがよくあります。

そういう時は、Ruby を使いましょう!

ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))'

実行例

こんな風に表示されます!

[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
    | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))'
{
  "key": {
    "format": [
      "json",
      "XML"
    ]
  }
}

また、JSON.parse(STDIN.read)["key"] とすることで、特定の項目だけ表示することもできます。

[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
    | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read)["key"])'
{
  "format": [
    "json",
    "XML"
  ]
}