• XML转JSON工具类


    原文地址:http://blog.csdn.net/lovesummerforever/article/details/26396465

    1.pom依赖

            <dependency>
                <groupId>org.jdom</groupId>
                <artifactId>jdom</artifactId>
                <version>2.0.2</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.39</version>
            </dependency>

    2.代码

     1 public class Xml2JsonUtil { 
     2     
     3     /** 
     4      * 转换一个xml格式的字符串到json格式 
     5      *  
     6      * @param xml 
     7      *            xml格式的字符串 
     8      * @return 成功返回json 格式的字符串;失败反回null 
     9      */  
    10     public static  String xml2JSON(String xml) {  
    11         JSONObject obj = new JSONObject();  
    12         try {  
    13             InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));  
    14             SAXBuilder sb = new SAXBuilder();  
    15             Document doc = sb.build(is);  
    16             Element root = doc.getRootElement();  
    17             obj.put(root.getName(), iterateElement(root));  
    18             return obj.toString();  
    19         } catch (Exception e) {  
    20             e.printStackTrace();  
    21             return null;  
    22         }  
    23     }  
    24   
    25     /** 
    26      * 转换一个xml格式的字符串到json格式 
    27      *  
    28      * @param file 
    29      *            java.io.File实例是一个有效的xml文件 
    30      * @return 成功反回json 格式的字符串;失败反回null 
    31      */  
    32     public static String xml2JSON(File file) {  
    33         JSONObject obj = new JSONObject();  
    34         try {  
    35             SAXBuilder sb = new SAXBuilder();  
    36             Document doc = sb.build(file);  
    37             Element root = doc.getRootElement();  
    38             obj.put(root.getName(), iterateElement(root));  
    39             return obj.toString();  
    40         } catch (Exception e) {  
    41             e.printStackTrace();  
    42             return null;  
    43         }  
    44     }  
    45   
    46     /** 
    47      * 一个迭代方法 
    48      *  
    49      * @param element 
    50      *            : org.jdom.Element 
    51      * @return java.util.Map 实例 
    52      */
    53     @SuppressWarnings({ "rawtypes", "unchecked" })
    54     private static Map  iterateElement(Element element) {  
    55         List jiedian = element.getChildren();  
    56         Element et = null;  
    57         Map obj = new HashMap();  
    58         List list = null;  
    59         for (int i = 0; i < jiedian.size(); i++) {  
    60             list = new LinkedList();  
    61             et = (Element) jiedian.get(i);  
    62             if (et.getTextTrim().equals("")) {  
    63                 if (et.getChildren().size() == 0)  
    64                     continue;  
    65                 if (obj.containsKey(et.getName())) {  
    66                     list = (List) obj.get(et.getName());  
    67                 }  
    68                 list.add(iterateElement(et));  
    69                 obj.put(et.getName(), list);  
    70             } else {  
    71                 if (obj.containsKey(et.getName())) {  
    72                     list = (List) obj.get(et.getName());  
    73                 }  
    74                 list.add(et.getTextTrim());  
    75                 obj.put(et.getName(), list);  
    76             }  
    77         }  
    78         return obj;  
    79     }
    80   
    81     // 测试  
    82     public static void main(String[] args) {
    83         String xml  = "<xml><version><![CDATA[2.0]]></version><charset><![CDATA[UTF-8]]></charset><status><![CDATA[400]]></status><message><![CDATA[Require POST method]]></message></xml>";
    84         System.out.println(Xml2JsonUtil.xml2JSON(xml));  
    85     }  
    86 }  

    3.运行结果(手动格式化了的)

    {
        "xml":{
            "charset":[
                "UTF-8"
            ],
            "message":[
                "Require POST method"
            ],
            "version":[
                "2.0"
            ],
            "status":[
                "400"
            ]
        }
    }
  • 相关阅读:
    spring service层单元测试
    Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
    Java源码学习 -- java.lang.String
    动态规划算法
    单元测试(Spring)
    Servlet/JSP
    Log4j2 — Log4j2导入、LogEvent、配置文件编写及路径
    idea 控制台输出 中文乱码 解决方法
    常见正则表达式
    读《浪潮之巅》(吴军著)有感
  • 原文地址:https://www.cnblogs.com/xbq8080/p/7767692.html
Copyright © 2020-2023  润新知