gpt4 book ai didi

java - 智能读取 XML 并将其转换为 JSON

转载 作者:行者123 更新时间:2023-12-01 16:25:50 26 4
gpt4 key购买 nike

我有代码可以进行格式化并将 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"
}
]
}

任何帮助将不胜感激!

最佳答案

您可以使用 JSON Jackson 将 XML 快速轻松地转换为 JSON。

public static void main(String[] args) {
String xml = "<?xml Version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
+ "<Data xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"
+ " <Envelope>\n"
+ " <Ver>1.13</Ver>\n"
+ " <ID>SAO</ID>\n"
+ " <Rec>men</Rec>\n"
+ " <TransactionID>0987714805168</TransactionID>\n"
+ " </Envelope>\n"
+ " <Code>124</Code>\n"
+ " <City></City>\n"
+ " <CompCodes>\n"
+ " <CompCode>US</CompCode>\n"
+ " <Vend>13</Vend>\n"
+ " </CompCodes>\n"
+ " <BankData>\n"
+ " <Code>123</Code>\n"
+ " <BankAcctNum>231</BankAcctNum>\n"
+ " </BankData>\n"
+ " <BankData>\n"
+ " <Code>124</Code>\n"
+ " <BankAcctNum>431</BankAcctNum>\n"
+ " </BankData>\n"
+ "</Data>";

JSONObject json = XML.toJSONObject(xml);
System.out.println(json.toString());
}

添加依赖:

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>

请参见此处:https://www.techiedelight.com/convert-xml-to-json-in-java/

关于java - 智能读取 XML 并将其转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62150649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com