Я использую 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>
.
Есть идеи, что здесь происходит? какое правило? Меня больше интересует, как заставить его последовательно распознавать массивы.