为了简化我的json
字符串的结构:
{
"route": {
"bus-1": {
"stations": [
],
"geo": [
]
},
"bus-2": {
"stations": [
],
"geo": [
]
}
},
"routesReverse": {
"bus-1": {
"stations": [
],
"geo": [
]
},
"bus-2": {
"stations": [
],
"geo": [
]
}
}
}
我尝试使用GSON
解析它:
public class MainJson {
@SerializedName("route")
@Expose
public Routes route;
@SerializedName("routesReverse")
@Expose
public Routes routesReverse;
public Routes getRoute() {
return route;
}
public Routes getRoutesReverse() {
return routesReverse;
}
}
我创建了所有模型,但我对此模型有疑问:
public class Routes {
@SerializedName("bus-1")
@Expose
BusStop busStop1;
@SerializedName("bus-2")
@Expose
BusStop busStop2;
public BusStop getBusStop1() {
return busStop1;
}
public BusStop getBusStop2() {
return busStop2;
}
}
我不喜欢这种方法来为每条公交路线创建带有注释的BusStop
对象,我想创建类似List<BusStop>
的内容,因为我的json
不仅有2条路线。
如何实现?
答案 0 :(得分:2)
你能修改你收到的json的结构吗?因为最简单的方法是在“ route ”json对象中有一个名为“ bus ”的数组而不是多个“ bus-i ”对象。如果你不能修改json,那么我认为GSON中没有任何方便的解决方案,因为它将对象1对1映射,即使你应用'alternate'标签。查看@SerializedName批注here的文档。
答案 1 :(得分:0)
//Each object is just a list of bus stops
public class MainJson {
@Expose
public List<BusStop> route;
@Expose
public List<BusStop> routesReverse;
public List<BusStop> getRoute() {
return route;
}
public List<BusStop> getRoutesReverse() {
return routesReverse;
}
}
public class BusStop {
@Expose
List<Object> stations;
@Expose
List<Object> geo;
public List<Object> getStations() {
return stations;
}
public List<Object> getGeo() {
return geo;
}
}
目前尚不清楚哪些站点/地理位置包含,但由于您使用了数组表示法,我假设它们都包含对象列表。