有这样的json数据
➜ ~ cat foo.json | jq
{
"data": {
"foo": [
{
"table": "aaa"
},
{
"table": "bbb"
}
],
"bar": [
{
"table": "ccc"
},
{
"table": "ddd"
}
]
}
}
可以分别获取foo或bar表,
➜ ~ cat foo.json | jq '.data.foo[].table'
"aaa"
"bbb"
➜ ~ cat foo.json | jq '.data.bar[].table'
"ccc"
"ddd"
如何在一个命令中获得所有表值?
答案 0 :(得分:1)
使用逗号运算符。
$ jq '.data["foo", "bar"][].table' foo.json
或
$ jq '.data | .foo, .bar | .[].table' foo.json
或者假设您想获取data
对象的任何属性。
$ jq '.data[][].table' foo.json
答案 1 :(得分:0)
如果您不关心“表”值在哪里出现,并且要排除null
和false
值:
.. | .table? // empty
如果要包含null
和false
值:
.. | objects | has("table") | .table