[英]wso2 Transform XML to Json inside sequence
我收到來自Rabbitmq的入站XML消息,我必須使用restheart將其發送到mongodb。 我必須先修改格式化程序生成的Json的內容,然后再將其發送到mongo rest api,因為我必須修改日期時間格式的字符串發送方式,以便為mongodb添加“ ISOdate()”。
我的傳入消息可能與其他消息不同。
例如,我從入站得到這個:
<CONTENT><CODE_USER>100</CODE_USER><DATE>2017-12-12</DATE></CONTENT>
我得到了這個端點
{“ CONTENT”:{“ CODE_USER”:100“,” DATE“:” 2017-12-12“}}
所以我想在發送到端點以修改日期字符串之前修改Json格式。
有沒有一種方法可以觸發esb Json格式化程序並獲取結果,然后再將其發送到端點?
謝謝,尼古拉斯
我找到了解決方案,
我使用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"/>
是的,那是可能的。 您可以將中介程序添加到順序中,以便在將響應發布到mongo-db之前進行轉換。
請檢查可用的介體,如果沒有適合您的介體,則可以通過擴展org.apache.synapse.mediators.AbstractMediator來編寫自己的介體。
有關如何編寫自定義調解器的詳細信息,請參閱以下博客: https : //medium.com/@nirothipanram/esb-few-tips-in-writing-a-custom-class-mediator-b9a322f4eaa8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.