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 :

Problème d'accès à un élément du retour JSON


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème d'accès à un élément du retour JSON
    Bonjour à tous,

    Je sollicite votre aide car après avoir épluché nombre de posts et de tutoriels, je ne suis parvenu qu'à une solution clairement pas optimisée pour obtenir un élément de mon retour Json. Je vous mets déjà le retour :

    Code json : 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
    {
       liste_lignes: {
          2: {
            id_client: "4"
            lib_materiel: "Ligne test"
            mode_reglement: "1"
          }-
         33: {
            id_client: "6"
            lib_materiel: "Ligne test2"
            mode_reglement: "1"
         }-
         34: {
            id_client: "7"
            lib_materiel: "Ligne test3"
            mode_reglement: "1"
         }-
         71: {
            id_client: "2"
            lib_materiel: "Ligne test4"
            mode_reglement: "1"
         }-
       }
    }
    Mon problème est le suivant : je n'arrive pas à avoir le 1er élément ( ici dans l'exemple 2, 33, 34 , 71) . Je suis obligé de passer par des boucles pour tester si le chiffre existe et accéder à l'élément (pour avoir ensuite accès à la liste (id_client,lib_materiel, mode_reglement). un exemple de mon 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
    int retour3 = jsonArraytest.getJSONObject(0).length();
    JSONObject test = strJson.getJSONObject("liste_lignes");
    while (i < retour3) { 
    	while (j < 500) {
    		z = String.valueOf(j);
     
    		try {
     
    			String res7 = test.getString("" + z);
    			String b = "[" + res7 + "]";
    			String val = null;
    			JSONArray jsonArray1 = new JSONArray(b);
    			val = jsonArray1.getJSONObject(0).getString("lib_materiel");
    		}catch{}
    	}
    }
    Voilà je précise que je débute en Android et que ce code n'est clairement pas viable de part le nombre atroce d'itérations ... Si quelqu'un peut m'aider ça serait sympa
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Je ne suis pas spécialiste du Json, mais je viens de le tester sur plusieurs sites de https://www.google.fr/webhp?sourceid...on%20validator, et il ne semble pas valide. Règle déjà ce problème, et après, on verra le suivant.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Tout d'abord merci de m'avoir répondu

    Voila l'export en mode raw via l'extension Postman :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"liste_lignes":{"erreur":"0","71":{"id_materiel":"5","lib_materiel":"blablabla","mode_voiture":"0","mode_apied":"1","mode_velo":"1"},"2":{"id_materiel":"31","lib_materiel":"Ligne Test","mode_voiture":"1","mode_apied":"1","mode_velo":"1"},"34":{"id_materiel":"2","lib_materiel":"test","mode_voiture":"0","mode_apied":"0","mode_velo":"1"},"33":{"id_materiel":"453","lib_materiel":"test","mode_voiture":"1","mode_apied":"0","mode_velo":"0"}}}
    Donc c'est moins facile à lire, mais c'est le chiffre avant chaque 'id-materiel' que je cherche à obtenir ( ex : 71 , 34, etc ).

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    je ne sais pas dans quelle mesure tu peux agir sur la génération de ta réponse JSON, mais je pense que tu pourrais la rendre plus propre :

    - l'id que tu veux récupérer est considérée comme une clé et pas une valeur, au lieu de "34":{...} tu devrais plutôt avoir : "myId":34,{...} et ainsi la récupérer via getInt("myId");

    - ta "liste_lignes" devrait être un tableau (entre crochets), pour récupérer un JsonArray et boucler dessus proprement.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Je plussoie la précédente réponse. Un p'tit tour ici ne te ferait pas de mal. C'est chiant à écrire au début les json, mais avec un peu de pratique, on s'y accommode.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bon je vous apporte mon retour

    Au final la personne en charge de l'export a modifié la structure du Json de manière à la rendre compatible avec le traitement Java que je souhaitais faire.

    Merci de vos réponses !

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

Discussions similaires

  1. [WPF] Problème d'accès à des éléments
    Par TWEESTY dans le forum C#
    Réponses: 2
    Dernier message: 19/12/2012, 07h20
  2. Réponses: 2
    Dernier message: 15/04/2011, 09h17
  3. Réponses: 5
    Dernier message: 05/03/2008, 11h03
  4. problème d'accès a des éléments créés dynamiquement
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 17h13
  5. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 09h49

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