我正在使用 net.sf.json.xml.XMLSerializer 将 XML 文档转换为 JSON。对于几乎两个相似的 XML 文档,我得到了两个不同的结果。我的代码是:
public static void main(String[] args) throws DocumentException {
String t1="<A><B>aa</B><C><D>Martin Ritt</D> </C></A>";
String t2="<A><B>aa</B><C><D>Martin Ritt</D></C></A>";
System.out.println(new XMLSerializer().read(t1).toString());
System.out.println(new XMLSerializer().read(t2).toString());
}
第一个字符串 t1 转换为:
{"B":"aa","C":["Martin Ritt"]}
而 t2 转换为:
{"B":"aa","C":{"D":"Martin Ritt"}}
这意味着,在第一种情况下,C 被认为是一个数组,而在第二种情况下,它被认为是一个对象。两个 XML 的区别在于 D 元素关闭后的空格。也就是说,在</D>
.
知道这里发生了什么吗?规则是什么?我对如何让它一致地识别数组更感兴趣。