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 :

Erreur "java.lang.string cannot be converted to jsonobject"


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut Erreur "java.lang.string cannot be converted to jsonobject"
    Bonjour,

    Je sais que mon message d'erreur a déjà été posté mais je ne comprends pas pourquoi il se produit...

    J'essaye juste d'afficher une liste d'information sur des utilisateurs.

    Voici mon code php :
    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
    $enregistrement = mysql_query("Select * from user") or die(mysql_error());
    $NbEnregistrement = mysql_num_rows($enregistrement);
    if($NbEnregistrement==0)
    {
    	$response["error"] = 1;
    	$response["error_msg"] = "Aucun joueur n a ete retrouve dans ce tournoi!";
    	echo json_encode($response);
    }
    else
    {
    	while($Info = mysql_fetch_array($enregistrement))
    	{
    		$response["uid"][] = $Info["id_joueur"];
    		$response["prenom_joueur"][] = $Info["prenom_joueur"];
    		$response["login"][] = $Info["login"];
    		$response["mail_joueur"][] =$Info["mail_joueur"];
    	}	
    	$response["success"] = 1;
    	echo json_encode($response);			
    }
    Maintenant, côté Android,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    JSONObject jObj = new JSONObject(result);
    Log.e("FPO_jObj", jObj.toString());
    Je récupère bien les valeurs
    07-18 22:51:25.172: E/moi_jObj(1810): {"uid":["11","12","13","15"],"login":["toto","tata","tutu","titi"],"mail_joueur":["toto@hotmail.fr","tata@hotmail.fr","tutu@hotmail.fr","titi@hotmail.fr"],"error":0,"success":1,"tag":"tableau","prenom_joueur":["jean","nicolas","benoit","martin"]}
    Mais lorsque je veux faire une boucle pour faire un affichage un par un, ca ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
     JSONArray login = jObj.getJSONArray("login");
     for (int i = 0; i < login.length(); i++) {
    	JSONObject alertitem = login.getJSONObject(i);
    	Log.e("ttt",alertitem.toString());
    }
    } catch (JSONException e) {
        Log.e("JSON", "There was an error parsing the JSON", e);                
    }
    J'obtiens le message :
    07-18 22:56:34.662: E/JSON(1866): org.json.JSONException: Value toto at 0 of type java.lang.String cannot be converted to JSONObject
    Pouvez-vous m'aider svp?

    Merci d'avance

  2. #2
    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
    Oui... tu demandes:

    Dans l'objet initial, la reference "login": ["toto","tata","tutu","titi"]
    Puis dedans tu itères des "objets"... hors un objet c'est { xxxxx:yyyy,zzzz:ttttt ... }, là ce ne sont que des strings....

    D'ou l'exception très explicite elle aussi:

    Value toto at 0 of type java.lang.String cannot be converted to JSONObject

    Soit en français: Impossible de convertir la valeur "toto" de type String à l'index 0 de l'array en un JSONObject.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  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
    Il faut simplement remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JSONObject alertitem = login.getJSONObject(i);
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String alertitem = login.getString(i);

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2015, 02h29
  2. Réponses: 7
    Dernier message: 20/01/2015, 10h33
  3. Réponses: 5
    Dernier message: 01/05/2012, 13h25
  4. Réponses: 7
    Dernier message: 26/10/2010, 18h31
  5. java.lang.String cannot be cast to Item
    Par cotede2 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 10/11/2009, 14h34

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