wso2 esb - XML到JSON转换的问题

时间:2014-05-26 12:37:55

标签: wso2 wso2esb

我正在使用WSO2 ESB 4.8.0,我在将xml(从xslt输出)转换为json时遇到以下问题:

  • 带有数字的字符串会自动转换为整数元素:“orderId”:10000(我希望它是字符串“orderId”:“10000”)

  • 如果有一个元素,则xml列表为json对象,如果存在多个元素,则为json数组。如何告诉转换器“此特定项必须始终为数组”?

我正在使用xslt来构建xml(因为我有从一些外部系统调用中合并的variuos xml),然后使用属性messageType application / json。

我无法使用payloadFactory,因为我有一些逻辑来实现并使用脚本调解器和javascript指令semms给我,就像一个最糟糕的解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:2)

要完成此操作,您可以更改JSON消息格式化程序。 转到[ESB主页] /repository/conf/axis2/axis2.xml。

更改JSON消息格式化程序 而不是JsonStreamFormatter使用org.apache.axis2.json.JSONMessageFormatter

<!--messageFormatter contentType="application/json"
                          class="org.apache.synapse.commons.json.JsonStreamFormatter"/-->
<messageFormatter contentType="application/json"
                          class="org.apache.axis2.json.JSONStreamFormatter"/>

请注意。这里所有的值都是字符串。

答案 1 :(得分:0)

首先,请注意桌面上有几个转换选项可以在XML和JSON之间进行映射。我建议使用另一个xslt,映射之前要在xml和json之间发送,然后发送json。也许,即使您可以将所有这些逻辑放入一个序列中,并从您需要的所有点调用该序列。

有关xslt的示例,请参阅http://www.bramstein.com/projects/xsltjson/

HTH。