Deserializando la clase interna con gson devuelve null.
Esta es la primera vez que hago una pregunta aquí, después de 3 años de informática, tan desnudo conmigo.
Quiero usar Gson para deserializar mi JSON en objetos. He definido las clases apropiadas, y algunos de los objetos de esas clases están incluidos en otros objetos. Al intentar deserializar todo el JSON, obtuve valores nulos, así que comencé a separarlo.
Llegué al punto en que todas las clases inferiores se mantienen a sí mismas, pero al intentar deserializar en un objeto que contiene una instancia de ese objeto más pequeño, todo vuelve como nulo.
Mi JSON parcial:
{
"user_profile": {
"pk": 1,
"model": "vcb.userprofile",
"fields": {
"photo": "images/users/Screen_Shot_2013-03-18_at_5.24.13_PM.png",
"facebook_url": "https://google.com/facebook",
"site_name": "simple food",
"user": {
"pk": 1,
"model": "auth.user",
"fields": {
"first_name": "blue",
"last_name": "bla"
}
},
"site_url": "https://google.com/"
}
}
}
Clase de perfil de usuario:
public class UserProfile {
private int pk;
private String model;
private UPfields fields = new UPfields();//i tried with and without the "new"
}
Clase UPfields:
public class UPfields {
private String photo;
private String facebook_url;
private String site_name;
private User user;
private String site_url;
}
Clase de usuario:
public class User {
private int pk;
private String model;
private Ufields fields;
}
Clase de Ufields:
public class Ufields {
private String first_name;
private String last_name;
}
En mi principal llamo:
Gson gson = new Gson();
UserProfile temp = gson.fromJson(json, UserProfile.class);
Así que mi objeto temporal solo contiene valores nulos. He intentado cambiar las clases a estática, y no funciona. El objeto UPfields y todos los inferiores funcionan bien.
¿¿Alguna sugerencia?? cuando quito el
"{" user_profile ":" y se está cerrando el corchete, el deserializar a un objeto user_profile funciona.