きれいに整形された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に手を加えたいという人はぜひ試してほしい。