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