json - 使用 jq 并循环遍历 json 并获取多个值
问题描述
我有命令使用 json 文件中的 jq 获取单个响应。但是当我使用 [] 时没有显示多个值。这是我的 json
{
"status" : "UP",
"details" : {
"Service1" : {
"status" : "UP",
"details" : {
"Credit" : {
"status" : "UP",
"details" : {
"Tablename" : "credittable"
}
}
}
},
"Service2" : {
"status" : "UP",
"details" : {
"Debit" : {
"status" : "UP",
"details" : {
"Tablename" : "debittable"
}
}
}
},
"Service3" : {
"status" : "UP",
"details" : {
"Loan" : {
"status" : "UP",
"details" : {
"Tablename" : "loantable"
}
}
}
}
}
}
以下是我的命令:
cat api.json | jq '.details.Service1.status'
cat api.json | jq '.details.Service1.details.Credit.status'
cat api.json | jq '.details.Service1.details.Credit.details.TableName
目前将这些值分配给各个变量,然后进行回显,想看看我们是否可以有一个循环并用一个命令显示所有内容。
我正在尝试打印如下
Service1 up
credittable up
Service2 UP
debittable up
Service3 up
loantable up
解决方案
使用 -r 选项,以下过滤器:
.details
| to_entries[]
| "\(.key) \(.value.status)",
(.value.details[]
| "\(.details.Tablename) \(.status)" )
产生所需的输出。
推荐阅读
- xcode - 切换视图控制器后触觉反馈仍在继续
- google-cloud-platform - 有没有办法在 GCP 中对批处理数据流作业进行排队?
- php - 如何按日期对数组与其他数组进行排序并限制laravel和carbon
- null - 空解引用
- arrays - 第二个数组
- angular - 添加角度通用后在角度应用程序中运行 npm run build:ssr 命令时出现错误
- r - 跨多个值聚合行
- r - 将 POSICXT x 轴更改为选定的标签
- javascript - 如何在网格项目中居中对齐 Material-UI“芯片”?
- mysql - MySQL - 创建索引语句打印“[HY000][1880] 旧格式的 TIME/TIMESTAMP/DATETIME 列已升级为新格式”