xml转json
来源:互联网 发布:数据库数据库系统 编辑:程序博客网 时间:2024/05/18 01: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
- * 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();
- } 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 obj = 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("")) {
- if (et.getChildren().size() == 0)
- continue;
- if (obj.containsKey(et.getName())) {
- list = (List) obj.get(et.getName());
- }
- list.add(iterateElement(et));
- obj.put(et.getName(), list);
- } else {
- if (obj.containsKey(et.getName())) {
- list = (List) obj.get(et.getName());
- }
- list.add(et.getTextTrim());
- obj.put(et.getName(), list);
- }
- }
- return obj;
- }
- // 测试
- public static void main(String[] args) {
- System.out.println( Xml2JsonUtil.xml2JSON("<MapSet>"
- + "<MapGroup id='Sheboygan'>" + "<Map>"
- + "<Type>MapGuideddddddd</Type>"
- + "<SingleTile>true</SingleTile>" + "<Extension>"
- + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>"
- + "<Map>" + "<Type>ccc</Type>" + "<SingleTile>ggg</SingleTile>"
- + "<Extension>" + "<ResourceId>aaa</ResourceId>"
- + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>"
- + "<ddd>" + "33333333" + "</ddd>" + "<ddd>" + "444" + "</ddd>"
- + "</MapSet>"));
- }
- }
0 0
- AS3 XML 转JSON
- json 转 xml
- java xml转json
- XML转json输出
- XML转JSON
- json转xml
- xml转json
- XML转JSON
- json转xml
- XML转JSON
- xml转json
- xml 转json 传输
- Python: xml转json
- xml字符串转json
- Object转json ,xml
- xml转json对象
- json转xml网站
- xml转json
- 数据流基本问题--独立元素计数(二)
- Android使用ActionBar和ViewPager切换页面
- Android 性能优化(六)——资源文件的存放
- excel 导入文本数据乱码问题
- 冒泡排序法
- xml转json
- Cannot instantiate the type HttpClient问题
- drf
- 程序员家里高效工作5步
- delete 和delete[]区别
- 并查集详解 (转)
- Android 手动显示和隐藏软键盘
- python 学习笔记(一)
- 淘宝商家还在为自己的店铺没有发愁吗?来八营苍苍推荐的qt1612帮你短时间提升店铺排名