StAXON - 当autoPrimitive为true时,强制特定值为String

时间:2016-05-31 19:14:16

标签: java json xml wso2 stax

使用StAXON将XML有效负载转换为JSON时,是否可以标记特定节点,以便在转换时,它们不会遵循 IDs Value 1,5,9,13 C 2,3,6,7,10,11,14,15 B 4,8,12 A 属性?

我有一些XML:

autoPrimitive(true)

我想将它转换为以下JSON:

<root>
    <foo>1234</foo> <!-- foo should always be String -->
    <bar>5678</bar> <!-- bar should always be Integer -->
</root>

我知道在处理数组时我可以使用XML处理指令{ "foo": "1234", // Note: this value is a String "bar": 5678 // autoPrimitive setting has caused a type conversion } ,因此我可以使用类似的东西来确保XML中的某些节点不会自动转换为各自的基本类型?我遇到的问题是<? xml-multiple myNode ?>foo由于其值而转换为数字。

作为参考,我试图利用WSO2的ESB 4.9.0,它在处理XML时使用StAXON库 - &gt; JSON和JSON - &gt; XML转换。

1 个答案:

答案 0 :(得分:2)

如果应该以这种方式转换,则无法标记每个节点。您可以通过设置以下内容来全局禁用autoPrimitives,

打开ESB_HOME / repository / conf / synapse.properties,然后设置

synapse.commons.json.json.output.autoPrimitive=false