JSONを便利に編集できるjqコマンドできる基礎的なことを書いておきます。
マニュアル、参考URL
公式マニュアルをみておくと幸せになれる。
jq Manual (development version)
ここに書いていることでメモしておきたいことを書いていきます。
jq コマンドを使う日常のご紹介 - Qiita
コマンド使い方
.
がルート{}
を表します。
整形
% echo '{"items":[{"item_id":1,"name":"たろう"},{"item_id":2,"name":"はなこ"}]}' \ | jq . { "items": [ { "item_id": 1, "name": "たろう" }, { "item_id": 2, "name": "はなこ" } ] }
列取得
% echo '{"items":[{"item_id":1,"name":"たろう"},{"item_id":2,"name":"はなこ"}]}' | jq '.items[]..name' "たろう" "はなこ" # ダブルコートを消すには -r をつける % echo '{"items":[{"item_id":1,"name":"たろう"},{"item_id":2,"name":"はなこ"}]}' \ [14:48:38] | jq -r '.items[].name' たろう はなこ
フィルタ(パイプみたいなもの)
'.items[]'までの結果を.nameへ渡す。
% echo '{"items":[{"item_id":1,"name":"たろう"},{"item_id":2,"name":"はなこ"}]}' \ [14:48:44] | jq -r '.items[] | .name' たろう はなこ
パイプの後で編集
項目の順序やプロパティー名を変更、配列にしたりなど
% echo '{"items":[{"item_id":1,"name":"たろう"},{"item_id":2,"name":"はなこ"}]}' \ [14:50:27] | jq -r '.items[] | {name2: .name, item_id2: .item_id}' { "name2": "たろう", "item_id2": 1 } { "name2": "はなこ", "item_id2": 2 }
他にもいろいろありそうだけど、一旦ここまで。