JAVA XML转JSON简单实现(dom4j)
2017-10-25 15:27
309 查看
package com.xwtech.app.util;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XMLJSONUtil {
/**
* 把Element对象转JSON对象(适用能转JSON的XML)
* @param node
* @return
*/
public static JSONObject XMLToJSON(Element node){
JSONObject jsonObj = new JSONObject();
XMLToJSON(node, jsonObj);
return jsonObj;
}
}
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XMLJSONUtil {
/**
* 把Element对象转JSON对象(适用能转JSON的XML)
* @param node
* @return
*/
public static JSONObject XMLToJSON(Element node){
JSONObject jsonObj = new JSONObject();
XMLToJSON(node, jsonObj);
return jsonObj;
}
/** * XML转JSON步骤 * @param node * @param jsonObj * @author YJ */ private static void XMLToJSON(Element node,JSONObject jsonObj){ List<Element> listElement = node.elements();//所有一级子节点的list if (listElement == null || listElement.size() == 0){ jsonObj.put(node.getName(), node.getTextTrim()); return; } Boolean isJSONArray = false; JSONArray jsonArray = new JSONArray(); //简单判断该子节点是否需要用JSONArray对象转 if (listElement.size() > 1 && listElement.get(0).getName().equals(listElement.get(1).getName())){ isJSONArray = true; jsonObj.put(node.getName(), jsonArray); } for (Element ele : listElement){//遍历所有一级子节点 if (isJSONArray){ JSONObject jsonObject = new JSONObject(); jsonArray.add(jsonObject); XMLToJSON(ele, jsonObject); }else{ JSONObject jsonObject = new JSONObject(); XMLToJSON(ele, jsonObj); } } } /** * 读取文本XMl字符串获取Document对象 * @param File (文本路径)(如:"D:\\a.xml") * @return * @throws Exception */ public static Document getDocumentByReadText(String File)throws Exception{ try{ SAXReader sax=new SAXReader();//创建一个SAXReader对象 sax.setEncoding("UTF-8"); File xmlFile=new File(File);//根据指定的路径创建file对象 Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束 return document; }catch(Exception e){ SAXReader sax=new SAXReader();//创建一个SAXReader对象 sax.setEncoding("GBK"); File xmlFile=new File(File);//根据指定的路径创建file对象 Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束 return document; } }
}
相关文章推荐
- Dom4j解析XML简单应用,XStream实现Java、XML转换
- java使用dom4j读取xml的简单例子
- Java_XmlRpc_Apache XML-RPC 简单实现(内嵌WebServer);
- Json-lib实现json,java对象,xml之间相互转换 .
- XStream实现xml和java对象之间的互相转换(包括对属性,别名,下划线_的处理),同理JSON也可以
- xml和JSON格式相互转换的Java实现
- xStream框架完美实现Java对象和xml文档JSON、XML相互转换
- xml转json高效率的java实现
- java使用dom4j读取xml的简单例子
- 跟阿根一起学Java Web开发二:使用Ajax技术及XML与JSON实现输出
- xml和JSON相互转换的Java实现
- java.beans包里面的两个类简单地实现XML解析
- java基于dom4j包实现对XML解析的方法
- JAVA 实现XML与JSON 相互转换
- Json-lib 实现 json,java 对象,xml 之间相互转换
- java读取xml的简单实现
- dom4j来解析xml,通过URL获取服务器端返回的字符串,java swing 实现的页面
- java中使用dom4j读xml文件简单教程
- 【JAVA与DOM4J实现对XML文档的CRUD操作】
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理