cdata xml与json的互转

package xml;

import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class xmlcdata {

public static List<org.jdom.Element> list;
    public static Map map;

    //普通xml转json
        public String xml2JSON(String xml){
            return new XMLSerializer().read(xml).toString();
        }
       //普通json转xml
        public String json2XML(String json){
            JSONObject jobj = JSONObject.fromObject(json);
            String xml =  new XMLSerializer().write(jobj);
            return xml;
        }
        //cdata xml转json
public static List<org.jdom.Element> jdomParseXml(String xml) {
        try {
            StringReader read = new StringReader(xml);
            // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
            InputSource source = new InputSource(read);
            // 创建一个新的SAXBuilder
            SAXBuilder sb = new SAXBuilder();
            // 通过输入源构造一个Document
            org.jdom.Document doc;
            doc = (org.jdom.Document) sb.build(source);

            org.jdom.Element root = doc.getRootElement();// 指向根节点
            list = root.getChildren();
            /*
             * if(list!=null&&list.size()>0){ for (org.jdom.Element element :
             * list) {
             * 
             * 
             * //
             * System.out.println("key是:"+element.getName()+",值是:"+element.getText
             * ()); jdomxml= "key是:"+element.getName()+",值是:"+element.getText();
             * } }
             */

        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }


//测试
        public static void main(String[] args) {
         map=new HashMap<String, String>();

        String xmlString = "<xml><return_code><![CDATA[SUCCESS]]></return_code>"
                + "<return_msg><![CDATA[OK]]></return_msg>"
                + "<appid><![CDATA[wx49151a8d01a6bf48]]></appid>"
                + "<mch_id><![CDATA[1363729502]]></mch_id>"
                + "<nonce_str><![CDATA[S1NLDjWlAFUrS6ZA]]></nonce_str>"
                + "<sign><![CDATA[8D94E45B7B47C89A6FB7FA4119469EC2]]></sign>"
                + "<result_code><![CDATA[FAIL]]></result_code>"
                + "</xml>";

        List<Element> jdomParseXml = xmlcdata.jdomParseXml(xmlString);
        for (org.jdom.Element element : list) {
        //  System.out.println("key是:" + element.getName() + ",值是:"
            //      + element.getText());


            map.put(element.getName(), element.getText());
        }
        JSONObject jsonObject = JSONObject.fromObject(map);
        System.out.println(jsonObject);

    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值