在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"));
简单吧!