jq

JSONにクエリしてフィルタできるCLIツール。

Documents

チートシート

# オブジェクトの特定キーの要素を抽出
cat foo.json | jq '.some_key'

# 配列の特定要素を抽出
cat foo.json | jq '.[0]'

# 配列の個々のオブジェクトの特定キーを抽出
cat foo.json | jq '.[] | .some_key'

# 配列の個々のオブジェクトからいくつかの要素を選んでそれぞれ配列に格納
cat foo.json | jq '.[] | [.keyA, .keyB, .keyC.keyAinC]'

# CSV形式で出力
cat foo.json | jq '.[] | [.keyA, .keyB, .keyC] | @csv'

# 配列の個々のオブジェクトからいくつかの要素を選んで新たなオブジェクトを作り、それぞれ出力
cat foo.json | jq '.[] | {a: .keyA, b: .keyB, ca: .keyC.keyAinC}'

# 配列の要素を特定のフィールドの値でフィルタ
cat foo.json | jq '.[] | select(.keyA == "foo")'

参考: