这一定非常简单,但是文档对我来说毫无意义。curl example.com/json
给了我以下结果:
{
"stats": {
"storage_server.disk_total": XXXXXXXXXX
},
"counters": {}
}
我想提取disk_total的值XXXXXXXXXX
。如何编写语法实现?
通过其键获取深度嵌套的值:
$ jq '.. |."storage_server.disk_total"? | select(. != null)'
..
是零参数recurse
的快捷方式,类似于XPath中的//
运算符。
curl <cmd> | jq '.value["ref"]["service"]'
- ProfessorKaos64在`storage_server.disk_total`中的点需要转义,以防止它被解释为对象键分隔符。因此您可以使用:
jq '.stats."storage_server.disk_total"'
XXXXXXXXXX
是一个有效的JSON数字。
.stats[].storage_server
?我觉得这个跟我的结构完全一样,可以用。 - Alex Hall