{
"vehicle": [
{
"type": "car",
"features": [
{
"airbags": "yes",
"engine": [
{
"electric": "yes",
"horsepower": "1000"
}
],
"number": "ABCD 1234"
}
],
"price": "100000"
},
{
"type": "truck",
"features": [],
"price": "500000"
},
{
"type": "train",
"features": [
{
"airbags": "no",
"engine": [
{
"horsepower": "10000"
}
],
"number": "MNOPQRST"
}
],
"price": "100000"
}
]
}
使用jq
or jmespath
,我想要type
where的值vehicle[].features[]
是空数组或缺少vehicle[].features[].engine[].electric
元素。
所以这个 json 应该列出我truck
,train
因为卡车有一个空数组vehicle[].features[]
,而火车缺少vehicle[].features[].engine[].electric
元素。
鉴于您的特定输入似乎
features
并且engines
始终最多只有一个元素,您应该能够:或者:
对于
type
那些vehicle
第engine
一个features
有钥匙not
的人。electric
或者,如果您像我一样
perl
已经知道或另一种编程语言,并且不想再学习另一种(并且非常具体)的语言,例如jq
s:(或
unless defined($_->{features}[0]->{engine}[0]->{electric})
)。