JSON GSON.fromJson objetos de Java

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:'some@email.com', friends:{ user:{ name:'another name', email:'this@email.com', friends:{ user:{ name:'yet another name', email:'another@email.com' } } } } } } } 

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 {} . Representa un objeto . Una colección / matriz debe ser representada por [] con objetos separados por comas.

Así es como debe 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 nested más profundo, para que comprenda cómo especificar varios objetos en una colección)

Dado este JSON, su clase contenedora debería verse así:

 public class Data { private List users; // +getters/setters } public class User { private String name; private String email; private List friends; // +getters/setters } 

y luego para convertirlo, use

 Data data = gson.fromJson(this.json, Data.class); 

y para obtener los usuarios, use

 List users = data.getUsers();