考虑下面的代码片段-
{
"header": {
"systemId": "1"
},
"body": {
"approvalType": "S",
"requester": "CRM",
"approver": "V",
"additionalInfoList": [
{
"additionalInfoItem": {
"value": [
{
"secret": [
{
"question": "1"
}
]
},
{
"secret": [
{
"question": "2"
}
]
},
{
"secret": [
{
"question": "3"
}
]
}
]
}
},
{
"additionalInfoItem": {
"name": "key2",
"value": [
{
"secret": [
{
"question": "00"
}
]
},
{
"secret": [
{
"question": "002"
}
]
},
{
"secret": [
{
"question": "003"
}
]
}
]
}
}
]
}
}
对于此json路径
$.body.additionalInfoList[*].additionalInfoItem.value[*].secret[*].question
api提供
[
"1",
"2",
"3",
"00",
"002",
"003"
]
我正在使用配置 REQUIRE_PROPERTIES
选项,该选项将jsonpath配置为在计算不确定路径时需要在路径中定义的属性。
如果在上述json中,某个问题未在请求中发送,则会引发如下异常- No results for path: $['body']['additionalInfoList'][1]['additionalInfoItem']['value'][0]['secret'][0]['question']
我需要收集问号的所有其他值,即使异常 com.jayway.jsonpath.PathNotFoundException
被扔了。我怎样才能做到这一点?
另一方面,如果我使用 SUPPRESS_EXCEPTIONS
,如何知道是否有丢失的路径?
1条答案
按热度按时间dgsult0t1#
我在这里没有一个很好的答案;不过,为了完成这项工作,我建议将响应处理两次:
一旦出现异常(或者根本没有任何选项也可以工作),
然后使用属性来检测错误。
这应该允许您按照所描述的方式处理场景。