gpt4 book ai didi

java - 使用 Staxon 将 Java 中的 Json 转换为 XML

转载 作者:行者123 更新时间:2023-12-02 09:10:53 26 4
gpt4 key购买 nike

我正在尝试将 Json 转换为 XML

public static String jsonToXML1(String source) {
String xmlString = null;

try {
StringWriter stringWriter = new StringWriter();
InputStream inputStream = new ByteArrayInputStream(source.getBytes("UTF-8"));
JsonXMLConfig config = new JsonXMLConfigBuilder().virtualRoot("root").autoPrimitive(false).autoArray(true).multiplePI(true).build();
XMLStreamReader streamReader = new JsonXMLInputFactory(config).createXMLStreamReader(inputStream);
Source source1 = new StAXSource(streamReader);
TransformerFactory tf = TransformerFactory.newInstance("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl", null);

tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
tf.newTransformer().transform(source1, new StreamResult(stringWriter));

xmlString = stringWriter.getBuffer().toString();
} catch (Exception e) {}

return xmlString;
}

System.out.println(jsonToXML1("[{\"ID\":\"a\"},{\"ID\":\"b\"}]"));

但是当我用 [{"ID":"a"},{"ID":"b"}] 调用它时,我得到<root><ID>a</ID></root>而不是

<root><element><ID>a</ID></element><element><ID>b</ID></element></root>

<root><ID>a</ID><ID>b</ID></root>

如果对象不包含数组,这似乎工作正常。
对于数组,仅转换第一个元素。
你能指出如何转换所有数组元素吗?

最佳答案

Underscore-java库有静态方法U.jsonToXml(json)。我是该项目的维护者。

U.jsonToXml("[{\"ID\":\"a\"},{\"ID\":\"b\"}]");

<?xml version="1.0" encoding="UTF-8"?>
<root>
<element>
<ID>a</ID>
</element>
<element>
<ID>b</ID>
</element>
</root>

关于java - 使用 Staxon 将 Java 中的 Json 转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59431229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com