zoukankan      html  css  js  c++  java
  • java XML转JSON格式

     

     

    标签: XML转Json json
     分类:
     

    代码如下所示,从这个例子中发现了代码库的重要性,如果建立一个自己的代码库,就可以直接从自己的代码库中取出来,这样需要什么就可以随时的取出来.代码库要保证的是规范性和正确性,并且有简单的模块注释.

    这是今天在网上找到的XML转json格式的代码,人家封装的很快,节省了我很多时间啊.

    [java] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. import java.io.ByteArrayInputStream;  
    2. import java.io.File;  
    3. import java.io.InputStream;  
    4. import java.util.HashMap;  
    5. import java.util.LinkedList;  
    6. import java.util.List;  
    7. import java.util.Map;  
    8.   
    9. import net.sf.json.JSONObject;  
    10.   
    11. import org.jdom.Document;  
    12. import org.jdom.Element;  
    13. import org.jdom.input.SAXBuilder;  
    14.   
    15. public class Xml2JsonUtil {  
    16.     /** 
    17.      * 转换一个xml格式的字符串到json格式 
    18.      *  
    19.      * @param xml 
    20.      *            xml格式的字符串 
    21.      * @return 成功返回json 格式的字符串;失败反回null 
    22.      */  
    23.     @SuppressWarnings("unchecked")  
    24.     public static  String xml2JSON(String xml) {  
    25.         JSONObject obj = new JSONObject();  
    26.         try {  
    27.             InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));  
    28.             SAXBuilder sb = new SAXBuilder();  
    29.             Document doc = sb.build(is);  
    30.             Element root = doc.getRootElement();  
    31.             obj.put(root.getName(), iterateElement(root));  
    32.             return obj.toString();  
    33.         } catch (Exception e) {  
    34.             e.printStackTrace();  
    35.             return null;  
    36.         }  
    37.     }  
    38.   
    39.     /** 
    40.      * 转换一个xml格式的字符串到json格式 
    41.      *  
    42.      * @param file 
    43.      *            java.io.File实例是一个有效的xml文件 
    44.      * @return 成功反回json 格式的字符串;失败反回null 
    45.      */  
    46.     @SuppressWarnings("unchecked")  
    47.     public static String xml2JSON(File file) {  
    48.         JSONObject obj = new JSONObject();  
    49.         try {  
    50.             SAXBuilder sb = new SAXBuilder();  
    51.             Document doc = sb.build(file);  
    52.             Element root = doc.getRootElement();  
    53.             obj.put(root.getName(), iterateElement(root));  
    54.             return obj.toString();  
    55.         } catch (Exception e) {  
    56.             e.printStackTrace();  
    57.             return null;  
    58.         }  
    59.     }  
    60.   
    61.     /** 
    62.      * 一个迭代方法 
    63.      *  
    64.      * @param element 
    65.      *            : org.jdom.Element 
    66.      * @return java.util.Map 实例 
    67.      */  
    68.     @SuppressWarnings("unchecked")  
    69.     private static Map  iterateElement(Element element) {  
    70.         List jiedian = element.getChildren();  
    71.         Element et = null;  
    72.         Map obj = new HashMap();  
    73.         List list = null;  
    74.         for (int i = 0; i < jiedian.size(); i++) {  
    75.             list = new LinkedList();  
    76.             et = (Element) jiedian.get(i);  
    77.             if (et.getTextTrim().equals("")) {  
    78.                 if (et.getChildren().size() == 0)  
    79.                     continue;  
    80.                 if (obj.containsKey(et.getName())) {  
    81.                     list = (List) obj.get(et.getName());  
    82.                 }  
    83.                 list.add(iterateElement(et));  
    84.                 obj.put(et.getName(), list);  
    85.             } else {  
    86.                 if (obj.containsKey(et.getName())) {  
    87.                     list = (List) obj.get(et.getName());  
    88.                 }  
    89.                 list.add(et.getTextTrim());  
    90.                 obj.put(et.getName(), list);  
    91.             }  
    92.         }  
    93.         return obj;  
    94.     }  
    95.   
    96.     // 测试  
    97.     public static void main(String[] args) {  
    98.         System.out.println(  Xml2JsonUtil.xml2JSON("<MapSet>"  
    99.                 + "<MapGroup id='Sheboygan'>" + "<Map>"  
    100.                 + "<Type>MapGuideddddddd</Type>"  
    101.                 + "<SingleTile>true</SingleTile>" + "<Extension>"  
    102.                 + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>"  
    103.                 + "<Map>" + "<Type>ccc</Type>" + "<SingleTile>ggg</SingleTile>"  
    104.                 + "<Extension>" + "<ResourceId>aaa</ResourceId>"  
    105.                 + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>"  
    106.                 + "<ddd>" + "33333333" + "</ddd>" + "<ddd>" + "444" + "</ddd>"  
    107.                 + "</MapSet>"));  
    108.     }  
    109. }  

    所需要的jar包在我的资源地址:http://download.csdn.net/detail/lovesummerforever/7376755


     http://blog.csdn.net/lovesummerforever/article/details/26396465

    http://hanyi366.iteye.com/blog/1162365

     
    0
     
    0
  • 相关阅读:
    CF 1047 C
    POJ 1064 Cable master [二分]
    HDU 1257最少拦截系统[动态规划]
    CF 1096D Easy Problem [动态规划]
    CF 1095C Powers Of Two
    POJ 1O17 Packets [贪心]
    POJ 3273 Monthly Expense二分查找[最小化最大值问题]
    HDU 2037 今年暑假不AC[贪心]
    Machine Learning Stanford (week 3)
    matlab 函数笔记
  • 原文地址:https://www.cnblogs.com/pengmn/p/5250582.html
Copyright © 2011-2022 走看看