RHEL9 jsonコマンドでjsonデータから特定要素を取得するサンプル
環境
Red Hat Enterprise Linux release 9.2 (Plow)
操作方法
1.jqコマンドのインストール
$ sudo dnf -y install epel-release
$ sudo dnf -y install jq
2.バージョンを確認する
$jq –version
jq-1.6
3.jsonファイルを作成します
test.json
{ "total_count": 3, "items": [ { "id": 111, "name": "yamada", "owner": { "id": 1001, "type": "tokyo" }, "size": 10 }, { "id": 2002, "name": "oosaki", "owner": { "id": 2002, "type": "oosaka" }, "size": 30 }, { "id": 3003, "name": "hashimoto", "owner": { "id": 3003, "type": "yokohama" }, "size": 25 } ] }
操作例
1.特定要素を取得する
$cat test.json | jq '.total_count' 3
2.配列内の特定要素を取得する
items配列 の全要素から、id の値を取得します。
$cat test.json | jq '.items[].id' 111 2002 3003
items配列 の1番目の要素の id の値を取得します。
$cat test.json | jq '.items[0].id' 111
3.配列の要素数を取得します。
$ cat test.json | jq '[.items[]] | length’
3
4.ダブルクォートを取り除きます
$cat test.json | jq '.items[].name' "yamada" "oosaki" "hashimoto"
-rオプション を利用すると、ダブルクォートが取り除かれます
$cat test.json | jq -r '.items[].name' yamada oosaki hashimoto