【发布时间】:2020-06-02 11:08:50
【问题描述】:
我有代码可以进行格式化并将 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"
}
]
}
任何帮助将不胜感激!
【问题讨论】:
-
请添加示例输入xml和输出json数据
-
嗨@Ackdari,我已经添加了示例
-
Underscore-java库可以将xml转json。 U.xmlToJson(xml) 方法会有所帮助。
-
嗨@ValentynKolesnikov,我不能使用外部库..它必须是标准的Java库,如org.json。*
-
嗨@Sahilkhan。您可以将源代码复制到您的项目中。