wso2 Преобразование XML в Json внутри последовательности - PullRequest
0 голосов
/ 03 ноября 2018

Я получаю от rabbitmq входящего XML-сообщение и должен отправить его на mongodb с перезапуском. Я должен изменить содержимое Json, сгенерированного форматером, перед отправкой его в api mongo rest, потому что я должен изменить формат datetime, передаваемый в строке, чтобы добавить «ISOdate ()» для mongodb.

Мое входящее сообщение может отличаться от других сообщений.

Например, у меня есть это из входящих:

<CONTENT><CODE_USER>100</CODE_USER><DATE>2017-12-12</DATE></CONTENT>

и я получаю это для конечной точки,

{"CONTENT": {"CODE_USER": 100 "," DATE ":" 2017-12-12 "}}

Поэтому я хочу изменить формат Json перед отправкой в ​​конечную точку для изменения строки даты.

Есть ли способ запустить средство форматирования esb Json и получить результат перед отправкой в ​​конечную точку?

Спасибо, Nicolas

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Я нахожу решение,

Я использую функцию json-eval ($. *.) И посредник сценариев для изменения формата даты перед отправкой в ​​конечную точку, например:

 <property expression="json-eval($.*.)" name="location" scope="default" type="STRING"/>

<script language="js"><![CDATA[var message =  new String(mc.getProperty('location'));
  var reg = /\"((\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)\.(\d{1,3})Z)\"/g;
  var mess=message.replace (reg,'{\"$date\" : \"\$1\"}');
  mess=mess.substring (1,mess.length-1);
  mc.setPayloadJSON(mess);]]></script>

<property name="ContentType" scope="axis2" type="STRING" value="application/json"/>
0 голосов
/ 05 ноября 2018

Да, это возможно. Вы можете добавить посредника в последовательность так, чтобы преобразование происходило до освобождения ответа на mongo-db.

Пожалуйста, проверьте доступных посредников и, если нет подходящих для вашего требования, вы можете просто написать свой собственный посредник, расширив org.apache.synapse.mediators.AbstractMediator

Подробную информацию о том, как написать собственный посредник, вы можете найти в блоге: https://medium.com/@nirothipanram/esb-few-tips-in-writing-a-custom-class-mediator-b9a322f4eaa8

...