Java Gson如何动态设置序列化名称
这是我的箱子Java Gson如何动态设置序列化名称,java,json,gson,Java,Json,Gson,这是我的箱子 // a base class public abstract class PageResult<T> { @SerializedName("success") public boolean success = false; @SerializedName("next_page") public int nextPage = -1; public ArrayList<T> dataList; } 因此,扩展PageResult
// a base class
public abstract class PageResult<T> {
@SerializedName("success")
public boolean success = false;
@SerializedName("next_page")
public int nextPage = -1;
public ArrayList<T> dataList;
}
因此,扩展PageResult的类,SerializedName
需要不同,并且都必须使用dataList。这意味着我需要使用PageResultdataList
进行各种处理,而不是子类dataList
。是否可能?
我是按照下面的方式做的
public abstract class PageResult<T> {
public abstract ArrayList<T> getDataList();
@SerializedName("success")
public boolean success = false;
@SerializedName("next_page")
public int nextPage = -1;
}
public class StringPageResult extends PageResult<String>{
@SerializedName("StringResult")
public ArrayList<String> dataList;
public abstract ArrayList<String> getDataList(){
return dataList;
}
}
公共抽象类PageResult{
公共抽象数组列表getDataList();
@序列化名称(“成功”)
公共布尔成功=假;
@SerializedName(“下一页”)
公共int下一页=-1;
}
公共类StringPageResult扩展了PageResult{
@SerializedName(“StringResult”)
公共ArrayList数据列表;
公共抽象数组列表getDataList(){
返回数据列表;
}
}
使用以下方法:
@SerializedName(value="name1", alternate={"name2", "name3"})
我想在
integerPagesult
中,dataList
应该是ArrayList
类型?除此之外,还有什么不起作用?@david.mihola:当我在所有子类上使用单个dataList
时,当我访问PageResult.dataList
时,它将变为空。
@SerializedName(value="name1", alternate={"name2", "name3"})