JSONPath с фильтрацией не работает должным образом в WSO2 ESB 5

У меня есть упомянутый ниже JSONPayload, и я хочу выбрать объект JSON, имеющий код отеля "ALE1_LON" из массива «content».

Для этого я использовал "$.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 с помощью онлайн-тестера JSONPath, он говорит, что мой путь 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])" выражения типа like возвращают результаты правильно

Ссылки:


person namalfernandolk    schedule 07.03.2017    source источник


Ответы (1)


Ошибка в выражении json-eval. == должен использоваться для равенства not =. например: json-eval($.content[?(@.hotelcode=='ALE1_LON')]) отлично работает. Спасибо за поддержку. Ссылка: https://odieweblog.wordpress.com/2015/09/20/new-json-path-expression-predicates/, http://madhukaudantha.blogspot.com/2017/02/wso2-esb-with-javascript-object-notation.html

person namalfernandolk    schedule 08.03.2017