InputStream à JsonObject - GSON
J'ai beaucoup de mal à convertir à la suite de cette api pour une JsonObject.
Le "résultat" reste nulle, peu importe ce que j'essaie de faire.
URL url = new URL(urlString);
InputStream input = url.openStream();
Reader reader = new InputStreamReader(in, "UTF-8");
JsonResult result = new Gson().fromJson(reader, JsonResult.class);
JsonResult classe
public class JsonResult {
private String status;
private Meta meta;
private ArrayList<Player> players;
}
class Meta{
private String count;
}
Json:
{"status":"ok","meta":{"count":12},"data":[{"nickname":"DataBase","account_id":500566109},{"nickname":"database007","account_id":514382449},{"nickname":"Database04","account_id":504367425},{"nickname":"database08","account_id":515081772},{"nickname":"database1","account_id":503282284},{"nickname":"database1221","account_id":506709044},{"nickname":"database123","account_id":508409172},{"nickname":"database1337","account_id":501661259},{"nickname":"database169","account_id":503884400},{"nickname":"database2","account_id":504337382},{"nickname":"database93","account_id":518691821},{"nickname":"databaseking66","account_id":505911069}]}
Note: C'est pour un projet scolaire
Note 2: je n'ai vérifier et de tester un grand nombre d'autres solutions d'ALORS, mais n'ai pas trouver ou à comprendre la bonne.
Edit 1:
public class JsonResult {
@SerializedName("status")
public String status;
@SerializedName("meta")
public Meta meta;
@SerializedName("data")
public Player[] players;
}
class Meta{
@SerializedName("count")
private String count;
}
Joueur de classe
public class Player {
private int account_id;
private String nickname;
public Player(int account_id, String nickname){
this.account_id = account_id;
this.nickname = nickname;
}
//Generated
public void setAccount_id(int account_id) {
this.account_id = account_id;
}
//Generated
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String toString() {
return this.account_id + this.nickname;
}
}
Vous dites que vous avez "beaucoup de mal" - bien ce qui se passe? Fait que le code de la compilation? Est-il une exception? Quel est le JSON?
liens vers des tiers sont mal vus, en raison de leur nature dynamique (quelqu'un peut-cliquez sur le lien dans l'avenir et de ne pas trouver quelque chose d'utile). Votre post doit être modifié pour inclure tout ce qui est pertinent. Aussi, certains d'entre nous sont derrière le lieu de travail des pare-feu 😉
merci, il sera là dans un moment :). J'ai édité la question
vos joueurs sont apparemment appelé
l'édition semble correct? tout nouveau pour moi, actuellement, de test et de débogage tout
liens vers des tiers sont mal vus, en raison de leur nature dynamique (quelqu'un peut-cliquez sur le lien dans l'avenir et de ne pas trouver quelque chose d'utile). Votre post doit être modifié pour inclure tout ce qui est pertinent. Aussi, certains d'entre nous sont derrière le lieu de travail des pare-feu 😉
merci, il sera là dans un moment :). J'ai édité la question
vos joueurs sont apparemment appelé
data
. Modifier ou ajouter une annotation indiquant que pour Gson.l'édition semble correct? tout nouveau pour moi, actuellement, de test et de débogage tout
OriginalL'auteur JochemQuery | 2015-05-06
Vous devez vous connecter pour publier un commentaire.
Dans votre JsonResult le changement de classe
Merci pour l'explication, @DaveLugg et la réponse -Annonces. Il y a quelque chose encore de me donner une erreur nulle. Je relis mon code et essayer de nouveau
Vous pouvez poster votre Joueur de classe ?
Fait, je Suis en manque de "corriger" les getters et les setters?
Avoir l'annotation, il signifie qu'il peut accéder à sa Liste de joueurs de partout et les gens ne comprennent pas confus au sujet de ce que c'est. Si il utilise des 'données' pour son champ, alors il peut effectuer une itération sur elle plus tard dans le code et quelqu'un qui cherche dans ne savent pas ce qu' "données" représente. Nommage des variables après ce qu'ils contiennent est une bonne pratique qui devrait être suivie. JochemQuery C'est à vous, bien sûr, mais je le laisser sur. Chaque fois que vous accédez aux joueurs de tableau plus tard dans le code, il est plus facile de comprendre de quoi il s'agit.
OriginalL'auteur