我有这个输入数据:
{
"list": {
"1": {
"attributes": {
"content": [],
"pageable": {
"pageNumber": 0,
"pageSize": 10
}
}
},
"2": {
"attributes": {
"content": [
{
"id": "AZER"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 10
}
}
},
"3": {
"attributes": {
"content": [
{
"id": "WXC"
},
{
"id": "QSD"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 10
}
}
}
}
}
我需要使用 JQ 将 id 值提取到一个新数组中,我尝试这样做:
.list[] | .attributes.content[].id
这是我的结果:
"AZER"
"WXC"
"QSD"
这是我想要的,但是在 3 行中,我需要将它放在数组中我怎样才能在这样的数组中得到这个结果:
["AZER","WXC","QSD"]
只需用语法包装 jq 查询
[${request}]
样品
在你的情况下,请求变成
您可以填充我们自己的数组:
在线尝试一下
一般来说,只需将生成所需值流的查询包装到数组括号中,输出就是这些值的数组。
演示
请注意,还有一个
[ .[] … ]
调用的快捷方式map(…)
:演示
两者输出:
使用
--compact-output
(或-c
) 标志删除不相关的空格,从而将输出压缩为一行:["AZER","WXC","QSD"]
如果您只想将所有
"id"
值提取到数组中,流式传输也是一种选择。在jqplay.org上尝试一下。