2017-03-07 84 views
0

正常工作我有一種下文提到的像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返回結果正確

個參考文獻:

回答