• java利用dom4j将xml字符串转换为json


      1 import java.util.HashMap;
      2 import java.util.LinkedList;
      3 import java.util.List;
      4 import java.util.Map;
      5 
      6 import org.dom4j.Document;
      7 import org.dom4j.DocumentHelper;
      8 import org.dom4j.Element;
      9 
     10 import net.sf.json.JSONObject;
     11 
     12 public class Xml2JsonUtil {
     13     
     14     
     15     /**
     16      * 转换一个xml格式的字符串到json格式
     17      * 
     18      * @param xml
     19      *            xml格式的字符串
     20      * @return 成功返回json 格式的字符串;失败反回null
     21      */
     22     @SuppressWarnings("unchecked")
     23     public static  String xml2JSON(String xml) {
     24         JSONObject obj = new JSONObject();
     25         try {
     26             Document doc = DocumentHelper.parseText(xml);
     27             Element root = doc.getRootElement();
     28             obj.put(root.getName(), iterateElement(root));
     29             return obj.toString();
     30         } catch (Exception e) {
     31             e.printStackTrace();
     32             return null;
     33         }
     34     }
     35 
     36     /**
     37      * 一个迭代方法
     38      * 
     39      * @param element
     40      * @return java.util.Map 实例
     41      */
     42     @SuppressWarnings("unchecked")
     43     private static Map  iterateElement(Element element) {
     44         List jiedian = element.elements();
     45         Element et = null;
     46         Map obj = new HashMap();
     47         Object temp;
     48         List list = null;
     49         for (int i = 0; i < jiedian.size(); i++) {
     50             list = new LinkedList();
     51             et = (Element) jiedian.get(i);
     52             if (et.getTextTrim().equals("")) {
     53                 if (et.elements().size() == 0)
     54                     continue;
     55                 if (obj.containsKey(et.getName())) {
     56                     temp = obj.get(et.getName());
     57                     if(temp instanceof List){
     58                         list = (List)temp;
     59                         list.add(iterateElement(et));
     60                     }else if(temp instanceof Map){
     61                         list.add((HashMap)temp);
     62                         list.add(iterateElement(et));
     63                     }else{
     64                         list.add((String)temp);
     65                         list.add(iterateElement(et));
     66                     }
     67                     obj.put(et.getName(), list);
     68                 }else{
     69                     obj.put(et.getName(), iterateElement(et));
     70                 }
     71             } else {
     72                 if (obj.containsKey(et.getName())) {
     73                     temp = obj.get(et.getName());
     74                     if(temp instanceof List){
     75                         list = (List)temp;
     76                         list.add(et.getTextTrim());
     77                     }else if(temp instanceof Map){
     78                         list.add((HashMap)temp);
     79                         list.add(iterateElement(et));
     80                     }else{
     81                         list.add((String)temp);
     82                         list.add(et.getTextTrim());
     83                     }
     84                     obj.put(et.getName(), list);
     85                 }else{
     86                     obj.put(et.getName(), et.getTextTrim());
     87                 }
     88                 
     89             }
     90             
     91         }
     92         return obj;
     93     }
     94     
     95     // 测试
     96     public static void main(String[] args) {
     97         String xmlStr = "<getOmElement>" +
     98         "<HEADER>" +
     99         "<SOURCEID>MDM</SOURCEID>" +
    100         "<SOURCEID>MDM</SOURCEID>" +
    101         "<myChild/>"+
    102         "<DESTINATIONID>DAXT</DESTINATIONID>" +
    103         "<SIZE>1</SIZE>" +
    104         "<TYPE>ADD</TYPE>" +
    105         "<BO>ORG</BO>" +
    106         "<CHECK>"+
    107         "checkCode"
    108         +"</CHECK>"+
    109         "</HEADER>" +
    110         "<REQUEST>" +
    111         "<DATAROW>" +
    112         "<ORGUUID>460c5239-13f662e8f67-2f1936027f000a1d675dd1399911234</ORGUUID>" +
    113         "</DATAROW>" +    
    114         "<DATAROW>" +
    115         "<ORGUUID>460c5239-13f662e8f67-2f1936027f000a1d675dd139991369c4</ORGUUID>" +
    116         "</DATAROW>" +    
    117         "</REQUEST>" +
    118         "</getOmElement>";
    119         
    120         System.out.println(Xml2JsonUtil.xml2JSON(xmlStr));
    121     }
    122 }
  • 相关阅读:
    找到一款不错的网站压力测试工具webbench
    nginx的Mainline version、Stable version、Legacy version的版本区别
    信号值大于-75dBm时
    爱快AP-H1使用方法及排错
    Windows 2008 Server搭建Radius服务器的方法
    碰到故障大全---cd
    win10系统中UserManager 总是被禁用怎么解决?
    win7共享文件夹设置无密码
    时钟.html
    微信开发者文档
  • 原文地址:https://www.cnblogs.com/ucfjepl/p/3944675.html
Copyright © 2020-2023  润新知