如何过滤json子数组中的项目?
例如,带有:
{
"country": "Australia",
"cities": [
"Melbourne",
"Sydney",
"Brisbane",
"Perth"
]
}
我需要过滤掉“布里斯班”和“珀斯”才能获得。
{
"country": "Australia",
"cities": [
"Melbourne",
"Sydney"
]
}
我尝试了select(something|test("Brisbane|Perth")|not)
的不同组合,但没有成功。
答案 0 :(得分:3)
您可以使用减法:
jq '.cities -= ["Perth", "Brisbane"]'
输出:
{
"country": "Australia",
"cities": [
"Melbourne",
"Sydney"
]
}
答案 1 :(得分:2)
您可以将更新分配运算符|=
与map
组合使用
jq '.cities|=map(if . == "Brisbane" or . == "Perth" then empty else . end)'