JSONテキストを整形する方法について
JSONテキストを整形したい場合は様々なシチュエーションであると思いますが、
それぞれのケースにおける成形方法を説明致します。
###前提条件
macOS
※但し、未検証なだけでWindows環境でもjqは利用できます。
事前準備
jqをインストールする
$ brew install jq
Vimで整形したい場合
コマンドラインで以下を入力する
:%!jq
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F56472%2F3b922edb-acd6-658f-b143-f682f33bb571.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=eb99419d39350fe1a0a95c12001fd235)
VSCodeで整形したい場合
JSONを行選択して=
を押す
もしくはJSONを行選択してコマンドパレット(右クリック、またはショートカットキーから)を開き、Format Document
を選択する
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F56472%2Fe39fc882-4723-acbe-2f00-863499176753.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=422134618813d56ec82debb8e20dcf2b)
クリップボードのJSONを整形したい
ターミナルから以下のコマンドを実行する
pbpaste | jq
※pbpasteというコマンドでクリップボードにコピーしている内容を出力することが出来ます。
※試したことはないですが、Windowsでもpbpasteは使える様です。
ターミナルで使える便利なエイリアス
alias pbjq='pbpaste | jq'
alias pbjqccopy='pbpaste | jq -c | pbcopy'
pbjq
をターミナルで実行するとクリップボードに設定されているJSONを整形してターミナルに出力する。
pbjqccopy
をターミナルで実行すると、クリップボードに設定されているJSONをワンライナーに整形してクリップボードの内容を置き換える。
例. 以下のJSONをクリップボードにコピーする。
{
"name": "Tanaka",
"age": 26
}
pbjqccopy
を実行する。
{"name":"Tanaka","age":26}
クリップボードが上記の内容にコンバートされる。
ターミナルでHTTPリクエストの引数にJSONを使いたい場合に重宝します。