내가 사용하는 추출 변수 규칙이 그대로 데이터를 반환하는 이유가 혼동 스럽습니다. 아래를 참조하십시오. 구문 분석하는apigee - Json 페이로드 추출 변수
json으로는 다음과 같습니다
{
"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>
, 나는 응답 변수 데이터를 얻을 수 없습니다. "ignoreUnresolvedVariables"매개 변수를 "false"로 설정하면 실패가 반환되므로 데이터가 없습니다. 따라서, 나는 "$. *"을 시도했다. 반환 된 결과 :
[
{
"callbackReference": {
"notifyURL": "someotherurlt",
"notificationFormat": "XML"
},
"filter": {
"data1": "data abc",
"data2": "data def",
"data3": "data xyz"
}
}
]
EntryNames가 너무 길기 때문에 이것이 가능한가? 길지는 못하지만 JSON 위협 요소 정책의 기본값에 잘 부합합니다.
나는 웹 기반 JSONPayload 파서와 $ .callNotificationSubscriptionList가 $ .callNotificationSubscriptionList.callEventSubscription [0]처럼 잘 작동했지만 나는이 JSON을 펌프 처리했다. 그러나 최상위 레벨을 제대로 확보 할 수 없다면 하위 레벨을 전혀 확보 할 수 없습니다.
JSON이 정책을 통해 파싱하는 것이 예상 한 것과 같지 않은 것 같습니다. JSON 경로 추출 정책 이전에 AssignVariable 정책을 사용하여 전체 페이로드를 변수에 할당하고 디버그 뷰에서 해당 변수의 값을 확인할 수 있습니까? 이는 json 경로 추출 정책을 적용하려고 할 때 페이로드 값이 실제로 통과하는지 이해하는 데 도움이됩니다. –
나는 이것을 해결했다 ...
듣기 좋습니다. 전체 정책과 문제를 해결 한 변경 사항을 답변 섹션에 추가 할 수 있습니다. –