java - Gson how to dynamically set serialized name -
here case
// base class public abstract class pageresult<t> { @serializedname("success") public boolean success = false; @serializedname("next_page") public int nextpage = -1; public arraylist<t> datalist; } in datalist serializedname need dynamic i.e.
public class stringpageresult extends pageresult<string>{ //for case @serializedname("stringresult") public arraylist<string> datalist } public class integerpageresult extends pageresult<integer>{ //for case @serializedname("integerresult") public arraylist<integer> datalist } so class extending pageresult, serializedname need different , must use datalist. meaning need use pageresult datalist various processing instead of sub class datalist.is possible? doing in following manner
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; } }
use :
@serializedname(value="name1", alternate={"name2", "name3"}) https://google.github.io/gson/apidocs/com/google/gson/annotations/serializedname.html
Comments
Post a Comment