正常工作我有一種下文提到的像JSONPayload和我想選擇從「內容」陣列,其具有hotelcode "ALE1_LON"
JSON對象。JSONPath具有過濾未在WSO2 ESB 5
爲此,我已用作屬性介下面提到"$.content[?(@.hotelcode='ALE1_LON')]"
JSONPath表達。
<property expression="json-eval($.content[?(@.hotelcode='ALE1_LON')])" name="hotelContet" scope="default" type="STRING"/>
<payloadFactory media-type="json">
<format>$1</format>
<args>
<arg evaluator="xml" expression="get-property('hotelContet')"/>
</args>
</payloadFactory>
<respond/>
問題是,這將返回一個空數組。
但是當我嘗試同樣的載荷和同樣JSONPath與online JSONPath Tester它說我JSONPath是正確的(如JSON對象下發)。
[
{
"hotelcode":"ALE1_LON",
"hotelname":"Alexandra"
}
]
- 爲什麼這不是在WSO2 ESB屬性格式調解工作?
- 這是因爲JSONPath版本嗎?
- WSO2不支持這種方式?
- 我需要遍歷每個元素和過濾器?
JSON有效載荷:
{
"_id":"INV27_1112",
"_rev":"5-876038bf65752ce4505e50baea6d5581",
"content":[
{
"hotelcode":"AMB3_LON",
"hotelname":"Ambassadors Bloomsbury"
},
{
"hotelcode":"ALE1_LON",
"hotelname":"Alexandra"
},
{
"hotelcode":"ALO_LON",
"hotelname":"Aloft London Excel"
}
]
}
- WSO2 ESB版本:5.0.0
注:"json-eval($.content[0])"
像exprssions返回結果正確
個參考文獻: