XML与JSON之间的转换 XMLSerializer类实现

介绍一下用XMLSerializer实现XML与JSON之间的转换

引用jar包下载地址:http://download.csdn.net/detail/yuxiangaaaaa/9614956

主要是xom-1.2.5.jar、json-lib-2.4-jdk15.jar

方法很简单:

/**
     * xom.jar提供的方法
     * xml转换成json
     * @param xml
     * @return
     */
    public static String xmltoJson(String xml) {  
        XMLSerializer xmlSerializer = new XMLSerializer();  
        return xmlSerializer.read(xml).toString();  
    } 
	
    /**
     * xom.jar提供的方法
     * json 转换成xml
     * @param json
     * @return
     */
    public static String Json2xml(JSONObject json){
    	try {  
            XMLSerializer serializer = new XMLSerializer();  
            JSON jsonObject = JSONSerializer.toJSON(json);
            String result = serializer.write(jsonObject);
            return result;  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return null;  	
	}
Person类:

public class People {
	 public People(int id,String name){
		this.id = id;
		this.name = name;
	}
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}


与之前的写的JSON转换成XML: http://blog.csdn.net/yuxiangaaaaa/article/details/52329944

最大区别是本次方法转换成的xml很死板,格式固定;

但是本次的是更符合完整xml报文形式

测试如下:

public static void main(String[] args) {
	String xml = "<xml><id><id1>3r</id1></id><name>2222</name></xml>";
	System.out.println(xmltoJson(xml));
		
	JSONObject json = new JSONObject();		
        People p = new People(9203,"xiaobao");
        People p2 = new People(943,"xiaoxiao");
        json.put("p1", p);
        json.put("p2", p2);
        System.out.println(Json2xml(json));
}

结果如下:

{"id":{"id1":"3r"},"name":"2222"}
<?xml version="1.0" encoding="UTF-8"?>
<o><p1 class="object"><id type="number">9203</id><name type="string">xiaobao</name></p1><p2 class="object"><id type="number">943</id><name type="string">xiaoxiao</name></p2></o>


多了一个xml头部,还有<o></o>和class、type属性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值