我很困惑为什么我使用的extractVariables规则是按原样返回数据。见下文。
Json到Parse是:
{
"callNotificationSubscriptionList": {
"playAndCollectInteractionSubscription": [],
"recognitionInteractionSubscription": [],
"playAndRecordInteractionSubscription": [],
"callDirectionSubscription": [],
"callEventSubscription": [
{
"clientCorrelator": "112345",
"resourceURL": "http:someurl",
"callbackReference": {
"notifyURL": "someotherurlt",
"notificationFormat": "XML"
},
"filter": {
"data1": "data abc",
"data2": "data def",
"data3": "data xyz"
}
}
]
}
}
规则:
<JSONPayload>
<Variable name="callNotSubL">
<!-- <JSONPath>$.callNotificationSubscriptionList</JSONPath> -->
<JSONPath>$.*</JSONPath>
</Variable>
</JSONpayload>
当我使用被注释掉的值时,我得不到响应变量数据。如果我设置&#34; ignoreUnresolvedVariables&#34; parm to&#34; false&#34;,我返回了一个失败,所以它没有数据。因此,我试过&#34; $。*&#34;有了这个,我回来了:
[
{
"callbackReference": {
"notifyURL": "someotherurlt",
"notificationFormat": "XML"
},
"filter": {
"data1": "data abc",
"data2": "data def",
"data3": "data xyz"
}
}
]
这可能是因为EntryNames太长了吗?我承认它们很长,但它们远低于JSON威胁保护政策中的默认值。
我通过基于Web的JSONPayload解析器和$ .callNotificationSubscriptionList工作得很好,就像$ .callNotificationSubscriptionList.callEventSubscription [0]一样,这就是我真正追求的。但是,如果我无法获得最高级别,我根本无法获得子级别。
答案 0 :(得分:0)
我使用@Santanu的评论解决了这个问题:
解析通过策略的JSON似乎与您期望的不一样?您是否可以尝试在JSON路径提取策略之前使用AssignVariable策略将整个有效负载分配给变量,并在调试视图中检查该变量的值?当您尝试应用json路径提取策略时,这将有助于了解实际传递的有效负载值。
<Source>
标记是&#34;请求&#34;这是一个响应提取。我删除了<Source>
标记,一切都很好