使用 org.apache.commons.json.utils.XML 将 XML 转换为 JSON toJson - 将空元素更改为"true"



我正在尝试在Java中将xml字符串转换为Json。下面是一个示例代码:

import org.apache.commons.json.utils.XML;
String test = "<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b>val1</b><d/></a>";
InputStream is = new ByteArrayInputStream(test.getBytes());
String jsonString = XML.toJson(is);

结果是:

{"a":

{"b":"val1","d":true}}

我不明白为什么 d 的值设置为 true?

还有没有办法得到这个结果:

{"

a":{"b":"val1","d":"}}

我做了一些调查,org.apache.apache.wink.json4j.utils.XML.toJson 方法使用 SAXParser,我无法调试(它警告我由于缺少行号属性(是因为反编译器吗?),无论如何)它,但我认为它适用于空标签。

然后我调试了apache.sling.commons.xml.XML.toJSONObject,它有自己的XMLTokenizer。据我估计,因为SAXParser空标签成真。

最新更新