我正在使用库net.sf.json将XML转换为JSON。 这是我写的代码:
FileInputStream fis = new FileInputStream("C:\\Desktop\\TestXML.xml");
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.readFromStream(fis);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
JSONObject root = new JSONObject();
root.element("WSJson", jsonArray);
我注意到如果XML包含空标记,它们将在空数组中转换。
示例:给出此xml
<WSJson>
<Tipo_Operazione>I</Tipo_Operazione>
<Codice_Prestazione>SW1</Codice_Prestazione>
<Codice_Intervento></Codice_Intervento>
<Nome/>
</WSJson>
输出
{
"WSJson": [{
"Tipo_Operazione": "I",
"Codice_Prestazione": "SW1",
"Codice_Intervento": [],
"Nome": []
}]
}
相反,我想
{
"WSJson": [{
"Tipo_Operazione": "I",
"Codice_Prestazione": "SW1",
"Codice_Intervento": "",
"Nome": ""
}]
}
有人可以帮忙吗?
答案 0 :(得分:0)
遍历JSON对象以便用空字符串替换空数组有什么问题?这里解释了如何做到这一点:
Traverse all the Nodes of a JSON Object Tree with JavaScript
答案 1 :(得分:0)
为什么需要XMLSerialiser来读取文件,而是可以使用FileReader和XML.toJSONObject()
将XML字符串转换为JsonObject?
public static void main(String[] args) throws FileNotFoundException, IOException {
String xml = null;
try(BufferedReader reader = new BufferedReader(new FileReader("C:\\Desktop\\TestXML.xml"))) {
String readLine =null;
while((readLine = reader.readLine()) != null) {
xml += readLine;
}
}
JSONObject jsonObject = XML.toJSONObject(xml);
System.out.println(jsonObject.toString(1));
}