2017-03-07 52 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返回结果正确

个参考文献:

回答