deserializar - JSON GSON.fromJson Java Objects
java json list of objects (1)
Estoy tratando de cargar mi Json en mi clase
public User() {
this.fbId = 0;
this.email = "";
this.name = "";
this.thumb = "";
this.gender = "";
this.location = "";
this.relationship = null;
this.friends = new ArrayList();
}
{
users:{
user:{
name:''the name'',
email:''[email protected]'',
friends:{
user:{
name:''another name'',
email:''[email protected]'',
friends:{
user:{
name:''yet another name'',
email:''[email protected]''
}
}
}
}
}
}
}
Estoy luchando para que GSON cargue los detalles del usuario en el objeto Java anterior con el siguiente código
User user = gson.fromJson(this.json, User.class);
El JSON no es válido. Una colección no debe ser representada por {}
. Es sinónimo de un objeto . Una colección / matriz debe representarse mediante []
con objetos separados por comas.
Así es como debería verse el JSON:
{
users:[{
name: "name1",
email: "email1",
friends:[{
name: "name2",
email: "email2",
friends:[{
name: "name3",
email: "email3"
},
{
name: "name4",
email: "email4"
}]
}]
}]
}
(tenga en cuenta que agregué un amigo más al amigo anidado más profundo, para que entienda cómo especificar múltiples objetos en una colección)
Dado este JSON, su clase de envoltorio debería verse así:
public class Data {
private List<User> users;
// +getters/setters
}
public class User {
private String name;
private String email;
private List<User> friends;
// +getters/setters
}
y luego para convertirlo, usar
Data data = gson.fromJson(this.json, Data.class);
y para conseguir los usuarios, utilizar
List<User> users = data.getUsers();