从WSO2 ESB 4.8 - 本机支持json,可以在WSO2网站中找到信息。参考下面的博客w.r.t.json formatter&助洗剂
http://charithaka.blogspot.co.uk/2013/10/the-difference-between-json-streaming.html
我的用例是在HTTP / 1.1 REST上使用JSON格式,这里要注意的要点是:
尝试使用:
org.apache.axis2.json.JSONStreamBuilder
org.apache.axis2.json.JSONStreamFormatter
如Charitha博客中所述。现在,我没有看到json在soap消息中被转换为soap(使用Log Mediator)。
这是否意味着,WSO2 ESB 4.8不会将json请求转换为soap,以避免某些数据格式的数据丢失(例如,数组等,如https://github.com/erny/jsonbuilderformatter中所述)
任何人都可以使用org.apache.axis2.json.JSONStreamBuilder&和我分享一个记录/操作json消息的示例。 org.apache.axis2.json.JSONStreamFormatter(或)json的任何其他构建器和格式化程序,而不在消息上下文中转换为soap消息。
答案 0 :(得分:1)
正如http://docs.wso2.org/display/ESB480/JSON+Support doc中所提到的,从ESB 4.8开始,您必须使用以下构建器和格式化程序来保持JSON表示不变,而不必转换为XML。这两个是ESB 4.8中的默认选项
org.apache.synapse.commons.json.JsonStreamBuilder
org.apache.synapse.commons.json.JsonStreamFormatter
以JSON使用身份登录,
<log>
<property name="JSON-Payload" expression="json-eval($.)"/>
</log>
您可以使用Payload Factory
或Script
调解员操纵JSON正文。例如.-
<payloadFactory media-type="json">
<format>
{
"location_response" : {
"name" : "$1",
"tags" : $2
}
}
</format>
<args>
<arg evaluator="json" expression="$.name"/>
<arg evaluator="json" expression="$.types"/>
</args>
</payloadFactory>
有关详细信息,请参阅documentation。