shell脚本使用jq命令 查询3层嵌套数组
时间: 2024-12-23 10:19:47 浏览: 16
Shell 脚本中可以使用 `jq` 命令处理 JSON 数据,包括查询嵌套数组。`jq` 是一个强大的命令行 JSON 工具,它可以在标准输入上解析 JSON,并提供各种操作如选择、过滤、修改等。
如果你有一个三层嵌套的 JSON 数组,比如:
```json
{
"data": [
{
"id": 1,
"items": [
{
"name": "item1",
"subItems": ["subItem1", "subItem2"]
},
{
"name": "item2",
"subItems": ["subItem3"]
}
]
},
{
"id": 2,
"items": []
}
]
}
```
你可以使用 `jq` 来获取特定元素。例如,如果你想获取所有子项的名字,可以这样写脚本:
```bash
json_data=$(cat your_json_file.json) # 替换为实际文件路径
result=$(echo $json_data | jq -r '.data[].items[].name')
echo "$result"
```
这里的 `-r` 参数表示将结果转换为原始字符串输出。
如果你只想查询第一个数据项的第一个子项,可以改写为:
```bash
first_item_name=$(echo $json_data | jq -r '.data[0].items[0].name')
echo "$first_item_name"
```
阅读全文