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