Parsing json avec gson
Fermé
mikdi
Messages postés
16
Date d'inscription
vendredi 12 avril 2013
Statut
Membre
Dernière intervention
30 septembre 2013
-
25 juin 2013 à 13:46
mikdi Messages postés 16 Date d'inscription vendredi 12 avril 2013 Statut Membre Dernière intervention 30 septembre 2013 - 26 juin 2013 à 12:30
mikdi Messages postés 16 Date d'inscription vendredi 12 avril 2013 Statut Membre Dernière intervention 30 septembre 2013 - 26 juin 2013 à 12:30
salut a tous.
Jsuis debutant en android et pour mon application je dois parser ce json avec gson de google
{"STATUS":"SUCCESS","ID ":"15","LOG ":"abalo","PROFIL":"directeur","mdp":"azte"}
tout est sur une meme ligne et le resultat me retourne null
ce qui fait ke jme demande si le probleme ne vient pas de la structure du json. car normalement elle doit etre étalée sur des ligne avec chaque champ et valeur sur une ligne. Aidez moi svp.
Jsuis debutant en android et pour mon application je dois parser ce json avec gson de google
{"STATUS":"SUCCESS","ID ":"15","LOG ":"abalo","PROFIL":"directeur","mdp":"azte"}
tout est sur une meme ligne et le resultat me retourne null
ce qui fait ke jme demande si le probleme ne vient pas de la structure du json. car normalement elle doit etre étalée sur des ligne avec chaque champ et valeur sur une ligne. Aidez moi svp.
5 réponses
mikdi
Messages postés
16
Date d'inscription
vendredi 12 avril 2013
Statut
Membre
Dernière intervention
30 septembre 2013
3
Modifié par mikdi le 25/06/2013 à 17:02
Modifié par mikdi le 25/06/2013 à 17:02
je suis pratiquement sur que cest mon reader qui doit etre null
en fait jai suivi ce tutoriel:
https://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
et mon voila comment on a recuperer le reader
Reader reader = new InputStreamReader(source);
et ce dans la classe JsonParsingActivity.
cest integralement la meme chose avec le tuto
en fait jai suivi ce tutoriel:
https://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
et mon voila comment on a recuperer le reader
Reader reader = new InputStreamReader(source);
et ce dans la classe JsonParsingActivity.
cest integralement la meme chose avec le tuto
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
25 juin 2013 à 16:06
25 juin 2013 à 16:06
Hello,
Ton JSON a l'air correct (voici un validateur en ligne: https://jsonlint.com/
Teste en pas-à-pas pour voir ce qui ne va pas...
Ton JSON a l'air correct (voici un validateur en ligne: https://jsonlint.com/
Teste en pas-à-pas pour voir ce qui ne va pas...
mikdi
Messages postés
16
Date d'inscription
vendredi 12 avril 2013
Statut
Membre
Dernière intervention
30 septembre 2013
3
Modifié par mikdi le 25/06/2013 à 16:23
Modifié par mikdi le 25/06/2013 à 16:23
le json est correct je pense aussi.
Mais jobtiens un NullPointerException lors de la creation de cette operation gson.fromJson(reader, SearchResponse.class).
Mais jobtiens un NullPointerException lors de la creation de cette operation gson.fromJson(reader, SearchResponse.class).
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
25 juin 2013 à 16:30
25 juin 2013 à 16:30
Est-ce que tu as correctement défini ta classe SearchResponse?
Fais attention aux types de tes variables. Et un conseil, mets le nom de tes attributs en minuscules...
Fais attention aux types de tes variables. Et un conseil, mets le nom de tes attributs en minuscules...
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
25 juin 2013 à 16:37
25 juin 2013 à 16:37
"mets le nom de tes attributs en minuscules"
???, ici il n'y a pas de problème avec les conventions...
"Fais attention aux types de tes variables"
Un NullPointerException ne peux pas venir d'une erreur de type, mais est généralement lié à une mauvaise initialisation des références... Par exemple ici, gson ou reader qui auraient la valeur null.
???, ici il n'y a pas de problème avec les conventions...
"Fais attention aux types de tes variables"
Un NullPointerException ne peux pas venir d'une erreur de type, mais est généralement lié à une mauvaise initialisation des références... Par exemple ici, gson ou reader qui auraient la valeur null.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
25 juin 2013 à 17:07
25 juin 2013 à 17:07
As-tu suivi le déroulement en pas-à-pas?
Est-ce que ta variable source est valide?
Est-ce que ta variable source est valide?
mikdi
Messages postés
16
Date d'inscription
vendredi 12 avril 2013
Statut
Membre
Dernière intervention
30 septembre 2013
3
Modifié par mikdi le 25/06/2013 à 17:28
Modifié par mikdi le 25/06/2013 à 17:28
jai suivi le deroulement pas a pas et je pense que ma variable source aussi sera null
mais je vois pas pourquoi elle doit etre null puisque le lien que je lui ai passer en parametre
est parfaitement valide.
finalement cest ma methode retrieveStream qui retourne null je pense
mais je vois pas pourquoi elle doit etre null puisque le lien que je lui ai passer en parametre
est parfaitement valide.
finalement cest ma methode retrieveStream qui retourne null je pense
25 juin 2013 à 17:13
https://sites.google.com/site/gson/gson-user-guide
Remarque : évidemment il serait préférable que les attributs de classe STATUS, etc. soient écrits en minuscules conformément aux conventions, mais cela aurait peut-être une incidence sur le parser vu que les mots-clés sont aussi en majuscules...
Attention avec "ID " et "LOG " aussi, je doute que l'espace après le D et G soient très appréciés...
25 juin 2013 à 17:27
MaClasse mc = gson.fromJson(json,MaClasse.class);
et cest loperation qui me renvoie null maintenant.
jai fai loperation avec la classe retrieveStream de ce tuto
https://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
Modifié par KX le 25/06/2013 à 18:40
Bref, peu importe. Là j'ai Eclipse sous la main j'ai pu testé Gson, donc déjà mon code de tout à l'heure fonctionne bien correctement. J'ajouterai même que l'histoire de la casse dans le JSON est importante : STATUS en majuscule dans le JSON doit correspondre à une variable STATUS en majuscule dans le Java, de plus l'histoire de l'espace en trop dans les champs "ID " et "LOG " sont eux aussi sources d'erreurs puisque l'espace est impossible à utiliser dans le nom de la variable (du moins dans l'exemple simple que j'ai donné) attention donc à ce genre de choses.
Je vais adapter mon code précédent pour ton histoire d'URL, à défaut d'avoir le tien.
25 juin 2013 à 19:08
Reader reader = new InputStreamReader(new URL(url).openStream());
fait sorti une IOException. xa marchait chez toi parfaitement?
25 juin 2013 à 19:19
Après, toi tu es dans un contexte spécifique où tu devras remplacer la valeur de l'url par ce qu'il faut, probablement un "http://..." puisque je doute qu'Android ait un répertoire C:\ ^^