好吧,当我需要使用带有Retrofit2的GSON解析json时,我在模型类中看到了很多样板代码。我想知道如何处理它,因为我很确定有一种方法可以使它看起来更优雅。
{
"data": [
{
"id": 2,
"price": 56,
"name": "Hello"
}
]
}
要解析此json,我需要创建2个模型类。一个用于内部对象(id,价格,名称),一个用于Data.class,它具有一个属性-此内部对象的列表。
内部可以有不同的内部对象是完全可以的,但是稍后您将拥有许多“ Data.class”,其中有一个属性“ data”(即List),但是内部对象类型不同。如何在我的项目中避免这种样板数据类似的类?
我想要的东西:
每当我创建新的“内部”对象模型类时,都不会使用具有“数据”属性的属性来更改内部对象类型的新数据类。
答案 0 :(得分:0)
我遇到了这个问题,并通过创建一个名称为BaseResponse的抽象类来解决此问题
public abstract class BaseResponseInterface2<T> {
@SerializedName("data")
private List<T> data;
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}
并在api服务界面中像这样使用
@GET("/api/")
Call<BaseResponseInterface2<innerClass>> getResponse(
@Path("id") int id
);
希望有帮助