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 :

String cannot converted to JSONObject


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut String cannot converted to JSONObject
    Bonjour tout le monde.

    J'ai un sérieux problème avec mon code android. J'attends vos aide.bref voici mon problème :

    Je récupère mes données d'un serveur de base de donné distant.En utilisant Php que je convertit avec json_encode.J'arrive à bien lire le fichier et recuperer le contenu en String.maintenant le véritable problème est que quand je veux convertir ce String en JSONObject voici l'erreur que ça affiche(org.JsonException:type of value java.lang.String cannot be converted to JSONObject.)

    La valeur de la variable result que le web retourne est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"personnel":[{"nom":"ZINA","prenom":"Lacina","telephone":"71234543"},{"nom":"ZINA","prenom":"Seydou Abdoul latif Pakodouin","telephone":"70063194"},{"nom":"KONATE","prenom":"Mariam","telephone":"7845632"},{"nom":"OUEDRAOGO","prenom":"Aida","telephone":"12456321"}]}

    voici le code source de la partie

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    protected  void onPostExecute(String result){
     
    		ArrayList<TrackDataPersonnel> trackData = new ArrayList<TrackDataPersonnel>();
    		progDialog.dismiss();
    		this.activity.alert(result);
    		if(result.length()==0){
    			this.activity.alert("impossible de trouver des données!!réssayez plutard.");
    			return;
    		}
     
     
    		try{
    			JSONObject respObj = new JSONObject(result);
    			JSONArray tracks = respObj.getJSONArray("personnel");
                for(int i=0;i<tracks.length();i++){
                    JSONObject track = tracks.getJSONObject(i);
                    String nom = track.getString("nom");
                    String prenom = track.getString("prenom");
                    String telephoneUrl = track.getString("telephone");
                    //String imageUrl= track.getString("image");
                    trackData.add(new TrackDataPersonnel(nom, prenom, telephoneUrl));
                }
     
     
    		}catch(JSONException e){
    			activity.alert(e.toString());
    			Log.d(debugTag,"Erreur de parsing et result est "+result);
    		}
    		this.activity.setCarcrm(trackData);
    	}
    Merci.

  2. #2
    Membre régulier
    Femme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 61
    Points : 105
    Points
    105
    Par défaut
    Un ptit bout de code ça aide toujours...(encodage et décodage)

    Sinon j'ai eu un problème similaire à mes début avec Json, car j'encodais une string et qu'a la réception il attendait des clefs/valeurs... après, pas assez experte en la matière pour dire si c'est là ton problème

  3. #3
    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 sors ma boule de cristal...
    Le problème vient certainement du fait que tu essaye de parser un Object JSON alors qu'en fait il s'agit d'un Array JSON ?
    Il faut donc utiliser la méthode new JSONArray(str) au lieu de new JSONObject(str).

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    weh tu as parfaitement raison.un bout de code aide vraiment toujour en voici ce bout de code.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    protected  void onPostExecute(String result){
     
    		ArrayList<TrackDataPersonnel> trackData = new ArrayList<TrackDataPersonnel>();
    		progDialog.dismiss();
    		this.activity.alert(result);
    		if(result.length()==0){
    			this.activity.alert("impossible de trouver des données!!réssayez plutard.");
    			return;
    		}
     
     
    		try{
    			JSONObject respObj = new JSONObject(result);
    			JSONArray tracks = respObj.getJSONArray("personnel");
                for(int i=0;i<tracks.length();i++){
                    JSONObject track = tracks.getJSONObject(i);
                    String nom = track.getString("nom");
                    String prenom = track.getString("prenom");
                    String telephoneUrl = track.getString("telephone");
                    //String imageUrl= track.getString("image");
                    trackData.add(new TrackDataPersonnel(nom, prenom, telephoneUrl));
                }
     
     
    		}catch(JSONException e){
    			activity.alert(e.toString());
    			Log.d(debugTag,"Erreur de parsing et result est "+result);
    		}
    		this.activity.setCarcrm(trackData);
    	}

    mon String result est correct mais la conversion a des problème

  5. #5
    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
    Peux tu nous donner la stackTrace complète (pas juste le type d'erreur).
    Et aussi la chaine de caractères que tu reçois de ton appel web (la valeur de la variable result).

  6. #6
    Membre régulier
    Femme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 61
    Points : 105
    Points
    105
    Par défaut
    Oui, au vu de ton code, je dirais que Simon a une bonne boule de cristal

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    la valeur de la variable result que le web retourne est
    {"personnel":[{"nom":"ZINA","prenom":"Lacina","telephone":"71234543"},{"nom":"ZINA","prenom":"Seydou Abdoul latif Pakodouin","telephone":"70063194"},{"nom":"KONATE","prenom":"Mariam","telephone":"7845632"},{"nom":"OUEDRAOGO","prenom":"Aida","telephone":"12456321"}]}

  8. #8
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Essaye de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.d(debugTag,"Erreur de parsing et result est "+result);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.e(debutTag,"Erreur de parsing sur "+result,e);
    Tu auras ainsi la ligne exacte ou l'erreur a eu lieu.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2015, 02h29
  2. Réponses: 2
    Dernier message: 19/07/2013, 09h20
  3. Réponses: 5
    Dernier message: 01/05/2012, 13h25
  4. Problème String cannot be converted
    Par Mvu dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/07/2008, 15h34
  5. cannot convert 'std::string' to 'System::String ^'
    Par broadhead dans le forum MFC
    Réponses: 1
    Dernier message: 14/06/2005, 11h37

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