xml格式的字符串到json格式

XML转JSON实用方法
本文介绍了一种将XML格式的数据转换为JSON格式的方法,并提供了一个Java实现示例。该方法利用了SAXReader读取XML内容,并通过递归方式解析XML元素,最终形成JSON结构。
/**
        * 转换一个xml格式的字符串到json格式
        
        * @param xml
        *            xml格式的字符串
        * @return 成功返回json 格式的字符串;失败反回null
        */ 
       public static  JSONObject xml2JSON(InputStream is) { 
           JSONObject obj = new JSONObject(); 
           try
               SAXReader sb = new SAXReader(); 
               Document doc = sb.read(is);
               Element root = doc.getRootElement(); 
               obj.put(root.getName(), iterateElement(root)); 
               return obj; 
           } catch (Exception e) { 
               log.error("传入XML后转换JSON出现错误===== Xml2JsonUtil-->xml2JSON============>>",e); 
               return null
           
       
 
/**
        * 一个迭代方法
        
        * @param element
        *            : org.jdom.Element
        * @return java.util.Map 实例
        */ 
       @SuppressWarnings("unchecked"
       private static Map  iterateElement(Element element) { 
           List jiedian = element.elements() ;
           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.elements().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; 
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值