我有以下JSON有效负载:
{
"inputs" : [{
"attributeX" : [{
"id1" : "value11",
}, {
"id1" : "value12",
}
],
"attributeY" : [{
"id" : "valueY1",
"attributeZ" : [{
"pathZ" : "/Path1/Path2[00163E038C2E1EE299C1C394370BCFA0]/Description",
"value" : "valueXYZ",
}
],
}
]
}
]
}
我想编写一个JSON路径表达式,以便获取pathZ的值。但是[]中的部分值是动态的。无论如何在以下JSON路径表达式中指定通配符?
$.inputs.[*].attributeY.[*].attributeZ[?(@.pathZ=='/Path1/Path2**<HOW_CAN_I_SPECIFY_A_WILDCARD_HERE>**/Description')].value
答案 0 :(得分:1)
您可以在JSON路径表达式中使用正则表达式来匹配PathZ值的开头和结尾,而不匹配中间值。这就是表达式的样子:
$.inputs.[*].attributeY.[*].attributeZ[?(new RegExp('^/Path1/Path2.*/Description$').test(@.pathZ))].value
我已使用在线JSON查询工具对此进行了测试:http://www.jsonquerytool.com/sample/jsonpathregex