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 :

Conversion JSONArray en ArrayList


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    En formation dévellopeur
    Inscrit en
    Août 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : En formation dévellopeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 27
    Par défaut Conversion JSONArray en ArrayList
    Bonjour,
    Je suis en train de développer une application android pour un stage et j'ai un problème de conversion d'un JSONArray en arrayList, lors de la conversion j'ai les deux lignes qui disparaissent, ici la latitude et la longitude.
    l'application doit récupérer des données sur des restaurateurs dans une base distante pour pouvoir les enregistrer dans une base locale comme favoris.

    Voici le main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        String requete = "SELECT * FROM restaurateurs;";
    		BaseDistante uneBaseDistante = new BaseDistante();
    		JSONArray resultRequete = uneBaseDistante.getServerData(requete);
    		Log.e("JSONArray", resultRequete.toString());
    		//tous les champs sont la
     
     
     
    		ArrayList<Restaurateur> lesRestaurateurs = new ArrayList<Restaurateur>();
    		lesRestaurateurs = uneBaseDistante.jsonToRestaurateurs(resultRequete);
    		Log.e("ArrayList", lesRestaurateurs.toString());
    		//Il maque la latitude et la longitude
    Voici la méthode JsonToRestaurateurs:
    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
    public  ArrayList<Restaurateur> jsonToRestaurateurs(JSONArray arrayDeRestaureteur){
    		ArrayList<Restaurateur> desRestaurateurs = new ArrayList<Restaurateur>();
    		for (int i = 0; i< arrayDeRestaureteur.length(); i++) {
    			try {
    				int idRestaurateur = arrayDeRestaureteur.getJSONObject(i).getInt("idRestaurateur");
    				String nomRestaurateur = arrayDeRestaureteur.getJSONObject(i).getString("nom");
    				String typeRestaurant = arrayDeRestaureteur.getJSONObject(i).getString("typeRestaurant");
    				int noRue = arrayDeRestaureteur.getJSONObject(i).getInt("noRue");
    				String typeRue = arrayDeRestaureteur.getJSONObject(i).getString("typeRue");
    				String nomRue = arrayDeRestaureteur.getJSONObject(i).getString("nomRue");
    				//int codePostal = arrayDeRestaureteur.getJSONObject(i).getInt("codePostal");
    				//String nomVille = arrayDeRestaureteur.getJSONObject(i).getString("nomVille");
    				double latitude = arrayDeRestaureteur.getJSONObject(i).getDouble("latitude");
    				double longitude = arrayDeRestaureteur.getJSONObject(i).getDouble("longitude");
     
    				Restaurateur unRestaurateur = new Restaurateur(idRestaurateur, nomRestaurateur, typeRestaurant, noRue, typeRue, nomRue, /*codePostal, nomVille,*/ latitude, longitude);
    				desRestaurateurs.add(unRestaurateur);
    			} catch (JSONException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    		}
    		return desRestaurateurs;
    	}
    Voici le log du JSONArray:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    11-22 10:10:19.476: E/JSONArray(446): [{"horaireJe":null,"nomRue":"Lepetit","typeRestaurant":"3","horaireVe":null,"horaireSa":null,"noRue":"25","carte":"","typeRue":"rue","idVille":"1","horaireLu":null,"nom":"Chez Bob","description":"Bienvenu chez bob marley","longitude":"1.32","horaireMe":null,"latitude":"1.25","horaireDi":null,"idRestaurateur":"1","horaireMa":null},{"horaireJe":"19h - 0h00","nomRue":"des chemins","typeRestaurant":"2","horaireVe":"19h - 0h00","horaireSa":"19h - 0h00","noRue":"45","carte":"","typeRue":null,"idVille":"1","horaireLu":null,"nom":"Le Grand Gourmet","description":"Le Restaurant des gourmets!!!","longitude":"1.34","horaireMe":"19h - 0h00","latitude":"1.25","horaireDi":"19h - 0h00","idRestaurateur":"2","horaireMa":"19h - 0h00"},{"horaireJe":"","nomRue":"Des groseilles","typeRestaurant":"2","horaireVe":"","horaireSa":"","noRue":"45","carte":"","typeRue":"rue","idVille":"1","horaireLu":"","nom":"Chez Mireille","description":"Des bons plats maison","longitude":"1.34","horaireMe":"","latitude":"1.12","horaireDi":"","idRestaurateur":"3","horaireMa":""},{"horaireJe":"","nomRue":null,"typeRestaurant":"4","horaireVe":"","horaireSa":"","noRue":"65","carte":"","typeRue":"rue","idVille":"1","horaireLu":"","nom":"Chez Riton","description":"Routier","longitude":"0","horaireMe":"","latitude":"0","horaireDi":"","idRestaurateur":"4","horaireMa":""}]
    et finalement celui de l'ArrayList:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    11-22 10:10:19.486: E/ArrayList(446): [Restaurateur [idRestaurateur=1, nomRestaurateur=Chez Bob, typeRestaurant=3, noRue=25, typeRue=rue, nomRue=Lepetit], Restaurateur [idRestaurateur=2, nomRestaurateur=Le Grand Gourmet, typeRestaurant=2, noRue=45, typeRue=null, nomRue=des chemins], Restaurateur [idRestaurateur=3, nomRestaurateur=Chez Mireille, typeRestaurant=2, noRue=45, typeRue=rue, nomRue=Des groseilles], Restaurateur [idRestaurateur=4, nomRestaurateur=Chez Riton, typeRestaurant=4, noRue=65, typeRue=rue, nomRue=null]]
    Quelqu'un Aurait-il une idée, ça doit certainement être une erreur toute bête mais là je ne trouve pas?
    Merci.

  2. #2
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Et en remplacant e.printStackTrace() par:

    Log.w("JSON","Erreur decoding Restaurateur",e);

    Rien dans le logcat ?

  3. #3
    Membre averti
    Homme Profil pro
    En formation dévellopeur
    Inscrit en
    Août 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : En formation dévellopeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 27
    Par défaut
    Tout d'abord merci de m'avoir répondu et désolé de répondre à mon tour si tard.

    Je n'ai rien non plus dans logcat avec ta methode.

    Une autre idée?

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

Discussions similaires

  1. Conversion d'une ArrayList
    Par Mordikkuss dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 08/02/2010, 22h26
  2. conversion arraylist List<string>
    Par TaymouWan dans le forum C#
    Réponses: 10
    Dernier message: 09/06/2009, 22h44
  3. Conversion ArrayList en String[]
    Par houpli dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/02/2009, 12h28
  4. [Conversions] Millisecondes...
    Par agh dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h25
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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