XML ドキュメントを JSON に変換するために net.sf.json.xml.XMLSerializer を使用しています。ほぼ 2 つの類似した XML ドキュメントに対して、2 つの異なる結果が得られます。私のコードは次のとおりです。
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 は配列と見なされ、2 番目のケースではオブジェクトと見なされます。2 つの XML の違いは、D 要素を閉じた後のスペースです。つまり、 の後</D>
。
ここで何が起こっているのか分かりますか?ルールは何ですか?配列を一貫して認識させる方法にもっと興味があります。