JMESPATH does not contains/starts_with


{
"data": {
"edges": [
{
"node": {
"id": "ABC12345",
"tags": [
{
"name": "Dummy"
},
{
"name": "HelloT"
}
]
}
},
{
"node": {
"id": "XYZ123",
"tags": [
{
"name": "Testing"
},
{
"name": "Test"
}
]
}
}
]
}
}

我想在上面的json上使用jmespath:如果不包含任何Hello*(starts_with(的node.tags[].name,则返回节点

我试过以下

(data.edges[].node)[? (tags[])[? !starts_with(name, 'Hello')  ] ]

然而,它仍然返回第一个节点,因为它有标签。name="Dummy">

有什么建议吗?

跑进同一个;事实证明,将命令(在您的情况下是starts_with(封装在括号中应该可以做到这一点。

(data.edges[].node)[? (tags[])[? !(starts_with(name, 'Hello')) ] ]

最新更新