我正在尝试在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空标签成真。