Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gson如何动态设置序列化名称_Java_Json_Gson - Fatal编程技术网

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。这意味着我需要使用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;
  }
}
公共抽象类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"})