JSON недействителен.Коллекция не должна быть представлена {}
.Он обозначает объект .Коллекция / массив должны быть представлены []
с разделенными запятыми объектами.
Вот как должен выглядеть JSON:
{
users:[{
name: "name1",
email: "email1",
friends:[{
name: "name2",
email: "email2",
friends:[{
name: "name3",
email: "email3"
},
{
name: "name4",
email: "email4"
}]
}]
}]
}
(обратите внимание, что я добавил еще одного другаглубокому вложенному другу, чтобы вы понимали, как указать несколько объектов в коллекции)
С учетом этого JSON ваш класс-обертка должен выглядеть следующим образом:
public class Data {
private List<User> users;
// +getters/setters
}
public class User {
private String name;
private String email;
private List<User> friends;
// +getters/setters
}
изатем, чтобы преобразовать его, используйте
Data data = gson.fromJson(this.json, Data.class);
, а чтобы получить пользователей, используйте
List<User> users = data.getUsers();