StAXON - 当 autoPrimitive 为 true 时强制特定值为字符串
StAXON - Force specific value to be String when autoPrimitive is true
当使用 StAXON 将 XML 有效载荷转换为 JSON 时,是否可以标记特定节点,以便在转换时它们不遵守 autoPrimitive(true)
属性?
我有一些 XML:
<root>
<foo>1234</foo> <!-- foo should always be String -->
<bar>5678</bar> <!-- bar should always be Integer -->
</root>
并且我希望它被转换成下面的形式JSON:
{
"foo": "1234", // Note: this value is a String
"bar": 5678 // autoPrimitive setting has caused a type conversion
}
我知道我可以在处理数组时使用 XML 处理指令 <? xml-multiple myNode ?>
,所以有没有类似的东西可以用来确保 XML 中的某些节点是不会自动转换为各自的原始类型?我遇到的问题是 foo
和 bar
由于它们的值而被转换为数字。
作为参考,我正在尝试使用 WSO2 的 ESB 4.9.0,它在处理 XML -> JSON 和 JSON -> 时使用 StAXON 库XML 转换。
如果以这种方式转换节点,则无法标记每个节点。您可以通过以下设置全局禁用 autoPrimitives,
打开ESB_HOME/repository/conf/synapse.properties,然后设置
synapse.commons.json.json.output.autoPrimitive=false
当使用 StAXON 将 XML 有效载荷转换为 JSON 时,是否可以标记特定节点,以便在转换时它们不遵守 autoPrimitive(true)
属性?
我有一些 XML:
<root>
<foo>1234</foo> <!-- foo should always be String -->
<bar>5678</bar> <!-- bar should always be Integer -->
</root>
并且我希望它被转换成下面的形式JSON:
{
"foo": "1234", // Note: this value is a String
"bar": 5678 // autoPrimitive setting has caused a type conversion
}
我知道我可以在处理数组时使用 XML 处理指令 <? xml-multiple myNode ?>
,所以有没有类似的东西可以用来确保 XML 中的某些节点是不会自动转换为各自的原始类型?我遇到的问题是 foo
和 bar
由于它们的值而被转换为数字。
作为参考,我正在尝试使用 WSO2 的 ESB 4.9.0,它在处理 XML -> JSON 和 JSON -> 时使用 StAXON 库XML 转换。
如果以这种方式转换节点,则无法标记每个节点。您可以通过以下设置全局禁用 autoPrimitives,
打开ESB_HOME/repository/conf/synapse.properties,然后设置
synapse.commons.json.json.output.autoPrimitive=false