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 :

JSON Parsing en JSONArray sur android


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 9
    Points
    9
    Par défaut JSON Parsing en JSONArray sur android
    Bonjour,

    J'essai sur android de parser un objet JSON que je récupére au format suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"url":"[monURL1, monURL2, monURL3]"}
    en JSONArray afin de les stocker dans une ArrayList<URL>.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if (entity != null) {
    		    // Lire la réponse JSON
    		    InputStream instream = entity.getContent();
    		    JSONObject jo = new JSONObject(convertStreamToString(instream));
    		    JSONArray jArr = new JSONArray(jo.getJSONArray("url").toString());
    		    //JSONObject jSubObj = new JSONObject(jArr.getJSONObject(0).toString());
     
    		    for(int i = 0;i<jArr.length();i++){
    		    	list.add(new URL(jArr.getJSONObject(i).toString()));
    		    }
     
    		    instream.close();
    		}
    Mais j'ai l'exception suivant:
    Value[monURL1,monURL2,monURL3] Java.lang.String cannot be converted to JSONArray

    Besoin d'aide.

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    stockes ta String affiche la dans le logCat histoire d'être sur que tu reçois bien ce que tu pense recevoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String result = convertStreamToString(instream));
    Log.d("Instream String", result);
    JSONObject jo = new JSONObject(result);
    J'ai jamais utilisé Json mais en lisant des truc sur le net je me pose la question
    tu devrais pas avoir un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"url": ["monURL1", "monURL2", "monURL3"]}
    au lieu du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"url":"[monURL1, monURL2, monURL3]"}

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Pour le result il récupère bien ce que je veux.
    Du coup je crois que ça vient du format transmis.
    Je sais pas pourquoi il le met en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"url":"[monURL1, monURL2, monURL3]"}
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"url": ["monURL1", "monURL2", "monURL3"]}

  4. #4
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    tiens je vien de trouver ce site http://www.jsonlint.com/

    apparement les deux chaines sont valide donc j'ai dit une betise

    mais ça explique pas pourquoi JSonArray renvoit une exeption

  5. #5
    Membre averti Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Points : 390
    Points
    390
    Par défaut
    Tous les deux formats sont valides.

    Ici la valeur correspondant à url est une chaine de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"url":"[monURL1, monURL2, monURL3]"}
    alors qu'ici la valeur est un tableau de chaines de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"url": ["monURL1", "monURL2", "monURL3"]}
    Il y a des chances que le problème vienne du côté du serveur, là d'où tu reçois tes données. Est ce que tu as les moyens de l'afficher sur un navigateur web, en mettant l'url de l'adresse du site, si tu utilises la méthode GET.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Dans la partie serveur j'utilise GRAILS comme framework.
    Donc quand je teste sur le navigateur ma fonction qui me retourne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [monurl1, monurl2, monurl3]
    voila ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def index = {
     
           def photoList=senior.photo.url_photo
     
            render photoList.asList()
     
            }

  7. #7
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par S.Jihad Voir le message
    Dans la partie serveur j'utilise GRAILS comme framework.
    Donc quand je teste sur le navigateur ma fonction qui me retourne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [monurl1, monurl2, monurl3]
    Bah ducoup c'est pas ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"url":"[monURL1, monURL2, monURL3]"}
    Est ce que tu convertit en JSON avec grails.converters.JSON ?
    http://manbuildswebsite.com/2010/01/...e-jsonbuilder/http://manbuildswebsite.com/2010/01/...e-jsonbuilder/

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Oui oui en fait mois je voulais juste vous monter ce qu'il affiche sans le convertir en JSON.
    Et en le convertissant il affiche bien ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"url":"[monURL1, monURL2, monURL3]"}

Discussions similaires

  1. JSON Parsing android
    Par pascal B dans le forum Android
    Réponses: 2
    Dernier message: 08/03/2014, 22h58
  2. Réponses: 4
    Dernier message: 19/07/2009, 03h01
  3. Réponses: 0
    Dernier message: 26/06/2009, 16h12
  4. Vos questions sur Android, Dalvik, et les GPhone
    Par Ricky81 dans le forum Android
    Réponses: 0
    Dernier message: 06/04/2009, 20h59
  5. Parse error: unexpected $ sur la dernière ligne..
    Par zamoto dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2006, 13h16

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