在java中我们经常需要将xml文档转json格式数据来进行一些操作,xml转json也是非常简单的,下面来看看我们如何来实现这个示例,我们以maven项目来举例。
首先需要引入两个maven jar包:
dom4j-1.6.0.jar:具有读取与操作xml文档的功能
json-20171018.jar:具有将xml转换为json格式的功能
maven分别如下,在pom.xml包里面导入:
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20171018</version> </dependency>
例如我们要将Student.xml文档内容转换成json格式,Student.xml文件是放在项目下的src目录中的,如下:
<?xml version="1.0" encoding="UTF-8"?> <xml-body> <student id="A100"> <name>小红</name> <age>18</age> <gender>女</gender> <address>深圳市</address> </student> <student id="A101"> <name>小明</name> <age>17</age> <gender>男</gender> <address>广州市</address> </student> </xml-body>
使用json-20171018.jar包中的方法将xml转json非常之简单,就只有几行代码,如下。
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.json.JSONObject;
import org.json.XML;
public class Demo {
public static void main(String[] args) throws Exception {
//指定xml文件所在目录
String path = "src/Student.xml";
//dom4j读取xml内容
SAXReader reader = new SAXReader();
Document doc = reader.read(path);
//读取到xml文件的doc,然后转成字符串类型
String stuStr = doc.asXML();
//通过json包里面的方法将学生字符串转换为json对象
JSONObject jsonObject = XML.toJSONObject(stuStr);
//输出json对象
System.out.println(jsonObject);
}
}上面的代码输出如下json结果,它是JSONObject对象,:
{
"xml-body":{
"student":[
{
"address":"深圳市",
"gender":"女",
"name":"小红",
"id":"A100",
"age":18
},
{
"address":"广州市",
"gender":"男",
"name":"小明",
"id":"A101",
"age":17
}
]
}
}如果想输出student里面的内容,可以这样:
JSONObject stuObj= (JSONObject)jsonObject.get("xml-body");
System.out.println(stuObj.get("student"));简单吧!