Ответ 1
JSON недействителен. Коллекция не должна быть представлена {}
. Он обозначает объект. Элемент collection/array должен быть представлен []
с помощью commasedparated objects.
Вот как выглядит 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();