我试图让jq
同时返回keyname和isAvailable值。此产品目前在API返回的每个区域都不可用,因此我希望能够返回如下内容:
[
"AMSTERDAM03,
"1"
]
这是API调用返回的json。
[
{
"description": "AMS03 - Amsterdam",
"keyname": "AMSTERDAM03",
"location": {
"location": {
"id": 814994,
"longName": "Amsterdam 3",
"name": "ams03",
"statusId": 2
},
"locationPackageDetails": [
{
"isAvailable": 1,
"locationId": 814994,
"packageId": 737
}
]
},
"sortOrder": 2
}
]
如果我运行jq '.[] | .keyname'
我得到了预期值,但我似乎无法弄清楚挖掘到较低层的语法。
答案 0 :(得分:1)
如下所示的简单jq
过滤器就足够了,
command-producing-json | jq '.[] | [ .keyname, .location.locationPackageDetails[].isAvailable ]'
会按预期产生。
[
"AMSTERDAM03",
1
]
您可以使用-r
,--raw-output
选项丢失双引号。