xml转json java 源码
来源:互联网 发布:手机屏保软件下载 编辑:程序博客网 时间:2024/06/05 18:17
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class Xml2JsonUtil {
/**
*
* 转换一个xml格式的字符串到json格式
* @param xml格式的字符串
* @return 成功返回json 格式的字符串;失败反回null
*/
@SuppressWarnings("unchecked")
public static String xml2JSON(String xml) {
JSONObject obj = new JSONObject();
try {
InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(is);
Element root = doc.getRootElement();
obj.put(root.getName(), iterateElement(root));
return obj.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 转换一个xml格式的字符串到json格式
*
* @param file
* java.io.File实例是一个有效的xml文件
* @return 成功反回json 格式的字符串;失败反回null
*/
@SuppressWarnings("unchecked")
public static String xml2JSON(File file) {
JSONObject obj = new JSONObject();
try {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(file);
Element root = doc.getRootElement();
//obj.put(root.getName(), iterateElement(root));
//return obj.toString();
Map map=iterateElement(root);
return map.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 一个迭代方法
* @param element: org.jdom.Element
* @return java.util.Map 实例
*/
@SuppressWarnings("unchecked")
private static Map iterateElement(Element element) {
List jiedian = element.getChildren();
Element et = null;
Map map = new HashMap();
List list = null;
for (int i = 0; i < jiedian.size(); i++) {
list = new LinkedList();
et = (Element) jiedian.get(i);
if (et.getTextTrim().equals("")) {
System.out.println("www");
if (et.getChildren().size() == 0)
continue;
if (map.containsKey(et.getName())) {
list = (List) map.get(et.getName());
}
list.add(iterateElement(et));
map.put(et.getName(), list);
} else {
System.out.println("ttt");
if (map.containsKey(et.getName())) {
System.out.println("aaa aaa");
list = (List) map.get(et.getName());
}
list.add(et.getTextTrim());
map.put(et.getName(), list);
}
}
return map;
}
// 测试
public static void main(String[] args) {
File xmlFile= new File("F:\\test.xml");
String s=Xml2JsonUtil.xml2JSON(xmlFile);
System.out.println(s);
}
}
- xml转json java 源码
- java xml转json
- JAVA json转xml
- Java json 转xml
- java对象转json、json数组 、xml
- java xml转json demo
- java xml转json demo
- XML转JSON JAVA语言
- java XML转JSON格式
- java XML转JSON格式
- java XML转JSON格式
- Java版本 XML转JSON 或 JSON转XML
- Java版本 XML转JSON 或 JSON转XML
- JAVA Version JSON to XML(JSON转XML)
- JAVA实现XML与JSON互相转换方法(含源码) / xml转json的两种方法(个人实现的)
- C#中json转为xml源码(转)
- java 里 json 数组字符串 转 XML
- JAVA将数据转json和XML
- JS 和Jquery 绑定事件
- Metatable元方法讲解
- BIOS MCSDK 2.0 User Guide 示例学习
- Android三角标签View:TriangleLabelView
- 指针数组
- xml转json java 源码
- POJ-2513-Colored Sticks
- BZOJ1683: [Usaco2005 Nov]City skyline 城市地平线 单调栈
- 物理术语的理解(二)
- [C/C++]在头文件中使用static定义变量意味着什么
- 大公司都有哪些开源项目
- Java基础之(十九)抽象类
- java基础知识(三)——java编程实例练习(附答案)
- Effective C++读书笔记---设计与声明