IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Souci de parse avec GSON


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 90
    Points
    90
    Par défaut Souci de parse avec GSON
    Salut tout le monde.

    voila mon souci. j'ai développé un web service REST en .Net où pour le moment j'envoie pas grand chose, un simple integer, ou du moins une classe où il n'y a que ca comme propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class Transport
        {
            public int iTest { get; set; }
        }
    je me retrouve avec le JSON suivant :

    coté client (Android donc) j'ai mis en place une classe identique qui ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class Transport {
     
        @SerializedName("iTest")
        public int iTest;
     
        public void setiTest(int itest)
        {
            iTest = itest;
        }
     
        public int getiTest()
        {
            return iTest;
        }
    }
    et lorsque je fais ma récupération de la manière suivante (je ne vous mets que le bout de code qui disjoncte ce qu'il y a avant cela est ok) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
                Transport transport = gson.fromJson(reader, Transport.class);
                Log.i("GSON","test : " + transport.iTest);
     
            }
            catch (Exception exp)
            {
                Log.e("GSON",(exp.getMessage()== null)?"pas de message": exp.getMessage());
            }
    j'ai comme message d'erreur :

    pas de message
    sympa tout ca n'est ce pas ? alors je pense que j'ai une coquille de déserialisation, peut etre que mon JSON est mauvais ? peut etre que je n'ai pas besoin de passer par une classe ? ayant déja essayé le passage sans encapsuler l'integer dans une classe. je m'y retrouve plus beaucoup je ne sais pas trop quoi essayer. si vous pouvez m'orienter à ce niveau j'en serai ravi.

    Merci d'avance à vous.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Je ne sais pas si l'erreur vient de là, mais essaie de garder la casse correcte pour le nom de tes méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public void setITest(int itest)
        {
            iTest = itest;
        }
     
        public int getITest()
        {
            return iTest;
        }

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par splinternabs Voir le message
    sympa tout ca n'est ce pas ?
    En même temps vu ton code c'est un peu normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.e("GSON",(exp.getMessage()== null)?"pas de message": exp.getMessage());
    Le message d'une exception n'est pas forcément l'information la plus utile. Or tu n'affiches que cela et tu ignores tout le reste !!!

    Il est nettement préférable de logger l'exception en entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.e("GSON", "fromJson()", exp);
    Tu auras ainsi le nom de l'exception avec son stacktrace ainsi que d'éventuelle(s) exception(s) "cause"...


    a++

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 90
    Points
    90
    Par défaut
    merci les gars pour vos réponses et pour ces infos, je ne savais meme pas qu'on pouvait fournir dans le Log l'exception même. Du coup j'ai eu une android.os.NetworkOnMainThreadException, ce qui m'a conduit à effectuer mon traitement au sein du thread de requetage http, et ca marche ! enfin à moitier, puisque je n'ai plus d'erreur, mais en revanche je ne récupère pas la bonne valeur, le fameux petit "2", au lieu de ca j'ai un beau "0". alors j'ai essayé en renommant les accesseurs comme préconisé (getITest/setITest) ce qui n'a rien donné, j'ai aussi essayé de changer le type de l'attribut en "String". mais je récupère un null. je ne vois plus trop de possibilités (vu l'heure qu'il est je suis plus étanche non plus), si vous auriez une piste pour moi vous ferez un heureux !

    merci de vos intervention

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    A mon avis tu ne récupères pas les bonnes données.
    Lis manuellement ton reader pour voir s'il contient bien le bon JSON...


    a++

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 90
    Points
    90
    Par défaut
    trop fort les gars !!! c'etait exactement ca, j'avais oublié de changer mon appel tout simplement.

    et bien merci à tous alors et bonne continuation

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par splinternabs Voir le message
    trop fort les gars !!! c'etait exactement ca, j'avais oublié de changer mon appel tout simplement.
    Oh on a tous déjà fait ce genre d'erreur


    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parsing json avec gson
    Par Mikegoss dans le forum Android
    Réponses: 7
    Dernier message: 30/06/2013, 20h11
  2. [DOM] Problème de parsing avec DomParser
    Par iam_free dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 21/04/2006, 09h33
  3. Souci de conversion avec XMLHttpRequest
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/03/2006, 13h19
  4. Souci pour désarchiver avec cpio
    Par vbcasimir dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 24/02/2006, 09h09
  5. [SAX] parsing avec sax
    Par jdar dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 03/12/2004, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo