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:
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 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 le log du JSONArray:
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; }
et finalement celui de l'ArrayList:
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":""}]
Quelqu'un Aurait-il une idée, ça doit certainement être une erreur toute bête mais là je ne trouve pas?
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]]
Merci.
Partager