jq 的基本用法。如何获取嵌套值
Basic jq usage. How to get nested value
这一定非常简单,但手册页对我来说毫无意义。
curl example.com/json
给我
{
"stats": {
"storage_server.disk_total": XXXXXXXXXX
},
"counters": {}
}
我想提取 disk_total 的值 XXXXXXXXXX
。这样做的语法是什么?
`storage_server.disk_total" 中的点需要转义以防止它被解释为对象键分隔符。因此您可以使用:
jq '.stats."storage_server.disk_total"'
假设 XXXXXXXXXX
是您真实 JSON 中的有效 JSON 号码。
- 要了解如何构造 jq 查询,查看 tutorial and manual than the "man" page. There's also a FAQ 更有用。
- 内键名有句号,不能用
.keyname
shorthand。所以你可以写:
.stats["storage_server.disk_total"]
或者如果您的 jq 允许:
.stats."storage_server.disk_total"
这些都是缩写:
.stats | .["storage_server.disk_total"]
要通过键深入嵌套值:
$ jq '.. |."storage_server.disk_total"? | select(. != null)'
..
is a shortcut for the zero-argument recurse
-- XPath //
运算符的模拟。
这一定非常简单,但手册页对我来说毫无意义。
curl example.com/json
给我
{
"stats": {
"storage_server.disk_total": XXXXXXXXXX
},
"counters": {}
}
我想提取 disk_total 的值 XXXXXXXXXX
。这样做的语法是什么?
`storage_server.disk_total" 中的点需要转义以防止它被解释为对象键分隔符。因此您可以使用:
jq '.stats."storage_server.disk_total"'
假设 XXXXXXXXXX
是您真实 JSON 中的有效 JSON 号码。
- 要了解如何构造 jq 查询,查看 tutorial and manual than the "man" page. There's also a FAQ 更有用。
- 内键名有句号,不能用
.keyname
shorthand。所以你可以写:
.stats["storage_server.disk_total"]
或者如果您的 jq 允许:
.stats."storage_server.disk_total"
这些都是缩写:
.stats | .["storage_server.disk_total"]
要通过键深入嵌套值:
$ jq '.. |."storage_server.disk_total"? | select(. != null)'
..
is a shortcut for the zero-argument recurse
-- XPath //
运算符的模拟。