stringxml转换成对象(JsonObject)粘贴即用
pom
<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>
创建一个类
package com.rs.util;
import java.io.IOException;
import java.io.StringWriter;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
public class XmlToJson {
/**
* 传入字符串格式的xml
* 将xml格式<a/>装换成<a></a>
* 再将xml装换成属性没有带"@"的JSONObject格式
* */
public static JSONObject convertXmlIntoJSONObject (String xml){
JSONObject jsonObject=new JSONObject();
try {
Document xmlDocument = DocumentHelper.parseText(xml);
OutputFormat format = new OutputFormat();
format.setEncoding("UTF-8");
format.setExpandEmptyElements(true);
StringWriter out = new StringWriter();
XMLWriter writer = new XMLWriter(out, format);
try {
writer.write(xmlDocument);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
//out.toString() 此结果为xml的<a></a>格式
jsonObject=XML.toJSONObject(out.toString());
} catch (DocumentException e1) {
e1.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return jsonObject;
}
}
测试
String xml = "<?xml version="1.0" encoding="utf-8" ?><returnsms> <returnstatus>Faild</returnstatus> <message>企业id只能是数字</message> <remainpoint>0</remainpoint> <taskID>0</taskID> <successCounts>0</successCounts></returnsms>";
JSONObject ss = XmlToJson.convertXmlIntoJSONObject(xml);
System.out.println(ss );
结果
{"returnsms":{"returnstatus":"Faild","successCounts":0,"message":"企业id只能是数字","remainpoint":0,"taskID":0}}