objects fromjson deserializar array java json gson

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();