きれいに整形されたjsonを1行に戻す方法

JSONを読みやすく整形するツールはいろいろなIDEやウェブサイトにあるが、元に戻すツールはあまりない。しかし、例えばJSON形式のデータを1行ごとに処理するシステムのテストデータを作るときなどは、可読性の高い状態でJSONを作っても、それを1行に戻さなければいけない。

例えば以下のようなファイルがあったとする。

# sample.json
{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

このとき、jq -c を使うと1行の状態に戻すことができる。jqコマンドがない場合は brew install jq でインストールできる。
-c--compact-outputの略であり、出力を1行にまとめてくれる。

$ jq -c < sample.json
{"userId":1,"id":1,"title":"delectus aut autem","completed":false}

jqコマンドは、JSONを扱いやすくする多機能なコマンドであり、-cオプションを使う機会はあまりないかもしれない。しかし自分の場合、これをきっかけにjqコマンドに入門し、今ではAPIを叩くときやJSONの特定の値を置換するときなどにフル活用している。JSONに手を加えたいという人はぜひ試してほしい。

stedolan.github.io