J'essaie de charger mon Json dans ma classe
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]'
}
}
}
}
}
}
}
J'ai du mal à obtenir GSON pour charger les détails de l'utilisateur dans l'objet Java Java avec le code suivant
User user = gson.fromJson(this.json, User.class);
Le JSON n'est pas valide. Une collection ne doit pas être représentée par {}
. Il représente un objet. Une collection/un tableau doit être représenté par []
avec des objets séparés par des virgules.
Voici à quoi devrait ressembler le JSON:
{
users:[{
name: "name1",
email: "email1",
friends:[{
name: "name2",
email: "email2",
friends:[{
name: "name3",
email: "email3"
},
{
name: "name4",
email: "email4"
}]
}]
}]
}
(notez que j'ai ajouté un ami de plus à l'ami imbriqué le plus profond, afin que vous compreniez comment spécifier plusieurs objets dans une collection)
Compte tenu de ce JSON, votre classe wrapper devrait ressembler à ceci:
public class Data {
private List<User> users;
// +getters/setters
}
public class User {
private String name;
private String email;
private List<User> friends;
// +getters/setters
}
puis pour le convertir, utilisez
Data data = gson.fromJson(this.json, Data.class);
et pour obtenir les utilisateurs, utilisez
List<User> users = data.getUsers();