[英]Gson how to dynamically set serialized name
这是我的情况
// 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;
}
在dataList
SerializedName
需要动态,即
public class StringPageResult extends PageResult<String>{
//for this case
@SerializedName("StringResult")
public ArrayList<String> dataList
}
public class IntegerPageResult extends PageResult<Integer>{
//for this case
@SerializedName("IntegerResult")
public ArrayList<Integer> dataList
}
因此,扩展PageResult, SerializedName
的类必须不同,并且所有类都必须使用dataList。 意味着我需要使用PageResult dataList
而不是子类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;
}
}
用这个 :
@SerializedName(value="name1", alternate={"name2", "name3"})
https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.