xStream+jettsion解析RESTEAsyで生成したカスタムタイプListを含むJSON`

1739 ワード

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":[
{「chartered 1」:0,「charteredGrowth」:0,「stationName」:「鍖楀尯」},
{「chartered 1」: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・・