Каковы различные способы получения свойств из полезной нагрузки? - PullRequest
0 голосов
/ 03 мая 2018

В чем разница между чтением свойств из полезной нагрузки. например, в полезной нагрузке есть свойство, которое называется con_id. когда я читаю это свойство следующим образом # [payload.con_id], оно становится равным нулю где as # [payload.'con_id '] возвращает значение.

несколько других обозначений, о которых я знаю, это # ​​[полезная нагрузка ['con_id']] или # [json: con_id] какой из них следует использовать при каком сценарии? если есть какие-либо особые случаи для использования какой-либо конкретной записи, пожалуйста, дайте мне знать сценарий также.

Кроме того, каково общее обозначение, которое должно использоваться с точки зрения поддержки мул мягкой платформы.

1 Ответ

0 голосов
/ 03 мая 2018

В Mule 3 любой из этих синтаксисов действителен. За исключением того, что оценщик json: предназначен для запросов к документам json, а другие - для запросов к картам / объектам. Также оценщик json: не рекомендуется в Mule 3 в пользу преобразования в карту и использования приведенных ниже выражений MEL.

payload.property
payload.'property'
payload['property']

Причиной первой неудачи в вашем случае является наличие специального символа '_'. Подчеркивание заставляет имя поля заключать в кавычки.

Как правило,. нотация предпочтительнее, чем [''], поскольку она короче для доступа к полям карты. А затем просто оберните имена свойств в '' для любых полей со специальными символами.

Примечание в Mule 4 вам не нужно сначала преобразовываться в карту / объект. Dataweave выражение заменяет MEL в качестве языка выражений и позволяет напрямую запрашивать json или любой тип полезных данных без предварительного преобразования в карту.

...