之前写的一个XML工具类,包括将JSON对象转换为XML对象
来源:互联网 发布:中南大学教务网络教育 编辑:程序博客网 时间:2024/05/17 08:35
这是很久之前写的东西了。
在项目开发中数据传输的是难免会面临由不同的系统接收数据的情况,由于各个系统对数据格式的要求都不同;而我们的系统主要用到的是XML的解析,如果为了去解析客户平台发来的JSON数据而去改动原有的解析方式这样会很不方便。因为在前一个项目的时候这个工具类,发到这里算的一个纪念吧。
这里用的XML解析类库为dom4j,json的解析类库为json.jar:
import java.io.File;import java.net.MalformedURLException;import java.util.Iterator;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;public class XMLBuilder {private static String documentChartset = "GBK";/** * 获取XML文档的编码格式 * @return */public static String getDocumentChartset() {return documentChartset;}/** * 设置XML文档的编码格式 * @param documentChartset */public static void setDocumentChartset(String documentChartset) {XMLBuilder.documentChartset = documentChartset;}/** * 将json对象转换为XML文档 * @param obj * @param rootName * @return * @throws JSONException */public static String traverseJSON(JSONObject obj,String rootName) throws JSONException{Document document = createDocument();Element root = document.addElement(rootName);traverseJSON(rootName,obj,root);return document.asXML();}/** * 将json数组转换为XML文档 * @param datas * @param rootName * @return * @throws JSONException */public static String traverseJSON(JSONArray datas,String rootName) throws JSONException{Document document = createDocument();Element root = document.addElement(rootName);traverseJSON(rootName,datas,root);return document.asXML();}/** * 转换中的主要工作类 * @param keyName * @param data * @param parentElement * @throws JSONException */private static void traverseJSON(String keyName,Object data,Element parentElement) throws JSONException{if(data instanceof JSONArray){JSONArray datas = (JSONArray) data;for(int i=0;i<datas.length();i++){traverseJSON(keyName,datas.get(i),parentElement);}}if(data instanceof JSONObject){JSONObject datas = (JSONObject) data;Iterator<String> ii = datas.sortedKeys();while(ii.hasNext()){String key = ii.next();Element newElement = parentElement.addElement(key);System.out.println(key + " : " + newElement.asXML());traverseJSON(key,datas.get(key),newElement);}}if(!(data instanceof JSONObject) && !(data instanceof JSONArray)){parentElement.setText((String) data);}}/** * 根据已经设置好的rootName和keyName生成XML文档对象 * @param rootName 根目录名称 * @param keyName 二级目录的键名 * @param values 设置的多个值 * @return */public static Document createDocument(String rootName,String keyName,String... values) {Document document = createDocument();Element root = document.addElement(keyName);for(int i=0;i < values.length;i++){root.addElement(keyName).setText(values[i]);}return document;}/** * 将map集合转化成XML文档对象 * @param datas 数据集 * @param rootName 根节点名 * @return */public static Document createDocument(Map<String,String> datas,String rootName) {Document document = createDocument();Element root = document.addElement(rootName);for(String keyString : datas.keySet()){root.addElement(keyString).setText(datas.get(keyString));}return document;}/** * 创建一个空的XML文档对象 * @return */public static Document createDocument() { Document document = DocumentHelper.createDocument(); document.setXMLEncoding(documentChartset); return document;}/** * 从文件读取XML,输入文件名,返回XML文档对象 * @param fileName文件名 * @return * @throws MalformedURLException * @throws DocumentException */ public static Document read(String fileName) throws MalformedURLException, DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); document.setXMLEncoding(documentChartset); return document; } /** * 返回Document文档对象对应的根节点 * @param doc * @return */ public static Element getRootElement(Document doc){ return doc.getRootElement(); } /** * 以传入的element节点为起点以递归的方式遍历下属的所有节点 * @param element */ public void treeWalk(Element element) { for (int i = 0, size = element.nodeCount(); i < size; i++) { Node node = element.node(i); if (node instanceof Element) { treeWalk((Element) node); } else { // do something.... } } }}
0 0
- 之前写的一个XML工具类,包括将JSON对象转换为XML对象
- 将xml字符串转换为一个xml对象
- C#将对象转换为xml或json格式
- XmlToJson-xml对象转换为Json对象类
- java 中xml转换为json对象
- Json格式对象转换为XML
- xml字符串转换为json对象
- xml标签转换为json对象
- xml字符串转换为json对象
- 下面是一个将XML转换为JSON的示例,
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象
- 将XML转换为JSON的示例
- 把一个XML字符串转换为一个XML文档对象
- 把一个XML字符串转换为一个XML文档对象
- 无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”。
- xml,json,对象 之间的相互转换
- 关于xml文件转换成java对象以及java对象转换成xml的工具类
- ios中的四种数据存储方式
- CentOS6.4_X64安装配置vsFTP-2.2.2
- 分享如何做高质量外链
- 分享若干好多个前进上网站形式可读性的法子
- GPIO驱动分析 & GPIO使用方法--S5PC110和S5PC210
- 之前写的一个XML工具类,包括将JSON对象转换为XML对象
- 天才程序员的传说
- ORACLE存储过程调用存储过程
- 分享若干好多种增多上网站收录的合用法子
- 分享若何利用博客做外链的心得寻味
- WIN7下,postgreSQL的安装与配置
- 鸟哥私房菜之认识 bash shell - 4
- How to move a datafile from a file system to ASM (Doc ID 390274.1)
- 分享三大县级地方站的线下宣传心得