xStream+jettsion解析RESTEAsyで生成したカスタムタイプListを含むJSON`
1,サーバ側の構成
ここで@XmlElementWrapper(name="BusStationInfoList")はBusStationInfoのパッケージクラス・解析でArrayListオブジェクトに対応するための
生成されたJSONは以下の通りである.
と書く
{"BusStationInfos":{
"BusStationInfoList":{
"BusStationInfo":[
{「chartered 1」:0,「charteredGrowth」:0,「stationName」:「鍖楀尯」},
{「chartered 1」:0、「charteredGrowth」:0、「stationName」:「鍗楀尯」}
]
}
}}
2クライアント:
当初サーバ側に@XmlElementWrapperを追加していなかった・なかなか解析できなかった・今・これで配置OK・・
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・・