用xStream+jettsion解析RESTEasy生成的包含自定义类型List的JSON`

本文介绍了一个使用Java进行XML与JSON互相转换的具体案例,包括服务器端如何配置注解来确保正确转换,并展示了客户端如何解析由服务器端生成的特定格式的JSON数据。

1,配置服务器端

 

 

import java.util.ArrayList;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "BusStationInfos")
public class BusStationInfos {
	@XmlElementWrapper(name="BusStationInfoList")
	@XmlElement(name = "BusStationInfo")
	private ArrayList<BusStationInfo> busStationInfoList;

	public ArrayList<BusStationInfo> getBusStationInfoList() {
		return busStationInfoList;
	}

	public void setBusStationInfos(ArrayList<BusStationInfo> busStationInfoList) {
		this.busStationInfoList = busStationInfoList;
	}

}

 

其中@XmlElementWrapper(name="BusStationInfoList")是BusStationInfo的包装类·用来在解析里对应一个ArrayList对象

 

生成的JSON如下:

写道
{"BusStationInfos":{
"BusStationInfoList":{
"BusStationInfo":[
{"chartered1":0,"charteredGrowth":0,"stationName":"鍖楀尯"},
{"chartered1":0,"charteredGrowth":0,"stationName":"鍗楀尯"}
]
}
}}
 

2 客户端:

 

XStream xstream = new XStream(new JettisonMappedXmlDriver());
		xstream.alias("BusStationInfos", BusStationInfos.class);
		xstream.alias("BusStationInfoList", ArrayList.class);
		xstream.alias("BusStationInfo", BusStationInfo.class);
		
		
		

		BusStationInfos busStationInfos = (BusStationInfos) xstream
				.fromXML(jsonString);

 

当初没有在服务器端添加@XmlElementWrapper·怎么也解析不出来·现在·这样配置就OK了··

转载于:https://my.oschina.net/piorcn/blog/310539

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值