J'ai une classe appelée WebApiReturn qui est la représentation d'une classe qui m'a envoyé comme JSON:Désérialise un objet générique dans un objet en Java
public class WebApiReturn<T> {
@SerializedName("objectReturn")
public T ObjectReturn;
@SerializedName("hasError")
public boolean HasError;
@SerializedName("errorMessage")
public String ErrorMessage;
@SerializedName("errorCode")
public String ErrorCode;
}
plus que je la classe de représentation de celle Je suis en train de faire de mon WebService:
public class MyObject {
public int ID_Obj;
public String ObjectName;
public Date LastLoginDate;
}
et une fonction appelée getObject qui obtiennent une chaîne formatée JSON envoyée par mon WebService et le convertir en cette classe Java:
public Object getObject(Class wantedResponseClass) throws JSONException{
Gson gson = new Gson();
object = gson.fromJson(this.result, wantedResponseClass);
return object;
}
Et mon JSON cordes est, par exemple:
{"objectReturn":{"iD_Obj":123,"objectName":"TestName","lastLoginDate":"0001-01-01T00:00:00"},"hasError":false,"errorMessage":null,"errorCode":null}
Dans et dans mon code, je tente d'obtenir mon objet comme:
WebApiReturn<MyObject> responseFromServer = new WebApiReturn<>();
try {
responseFromServer =(WebApiReturn<MyObject>) getObject(responseFromServer.getClass());
} catch (Exception e) {
e.printStackTrace();
}
Mais le T ObjectReturn générique, qui devrait être tourné à un MyObject quand j'ai déclaré WebApiReturn<MyObject> responseFromServer = new WebApiReturn<>();
n'est pas rempli avec la représentation de la Json. Quelqu'un sait ce que je fais mal en ce moment? Dois-je utiliser un autre type de désérialisation ou quelque chose comme ça?