java读取XML并巧妙地将其转换为JSON
我有一些代码,可以格式化XML并将其转换为JSON,但它变化很大,而且毫无生气。我需要从XML中选取大约50个元素,并使用这些元素格式化JSON。很多部分都在重复,但元素不同。 代码如下:-
private String createBrokeredMessage(String payload) {
String message = "";
String Ver = "";
String ID = "";
|
|
String Rec = "";
String default1 = "[]";
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource src = new InputSource();
src.setCharacterStream(new StringReader(payload));
Document doc = builder.parse(src);
NodeList n1 = doc.getElementsByTagName("Ver");
if (n1.getLength() > 0) {
Ver = n1.item(0).getTextContent();
if(Ver == "") {
Ver = default1;
}
else {
Ver = "\""+Ver+"\"";
}
}
NodeList n2 = doc.getElementsByTagName("ID");
if (n2.getLength() > 0) {
ID = n2.item(0).getTextContent();
if(ID == "") {
ID = default1;
}
else {
ID = "\""+ID+"\"";
}
}
//|
//|
//|
//|
//|
//|
NodeList n49 = doc.getElementsByTagName("Rec");
if (n49.getLength() > 0) {
Rec = n49.item(0).getTextContent();
if(Rec == "") {
Rec = default1;
}
else {
Rec = "\""+Rec+"\"";
}
}
message = "{\"Envelope\":{\"Ver\":"+Ver+",\"ID\":"+ID+-------------------",\"Rec\":"+Rec+"}]}";
System.out.println("Created message with ID" + message);
} catch (Exception e){
e.printStackTrace();
}
return message;
}
XML示例:-
<?xml Version="1.0" encoding="UTF-8" standalone="no"?>
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Envelope>
<Ver>1.13</Ver>
<ID>SAO</ID>
<Rec>men</Rec>
<TransactionID>0987714805168</TransactionID>
</Envelope>
<Code>124</Code>
<City></City>
<CompCodes>
<CompCode>US</CompCode>
<Vend>13</Vend>
</CompCodes>
<BankData>
<Code>123</Code>
<BankAcctNum>231</BankAcctNum>
</BankData>
<BankData>
<Code>124</Code>
<BankAcctNum>431</BankAcctNum>
</BankData>
</Data>
输出JSON:-
{
"Envelope": {
"Ver": "1.13",
"ID": "SAO",
"Rec": "men",
"TransactionID": "0987714805168"
},
"Code": "124",
"City": [],
"CompCodes": [{
"CompCode": "US",
"Vend": "13"
}],
"BankData": [
{
"Code": "123",
"BankAcctNum": "231"
},
{
"Code": "124",
"BankAcctNum": "431"
}
]
}
任何帮助都将不胜感激
# 1 楼答案
我们可以使用org将XML转换为JSON数组。json。XML类,它提供了一个静态方法XML。toJSONObject()将XML转换为JSON数组
语法
公共静态JSONObject到JSONObject(java.lang.String)抛出JSONException
在下面的示例中,将XML转换为JSON数组
在你的情况下,代码将是
输出: