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

API standards et tierces Android Discussion :

Parser JSON requête google maps


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut Parser JSON requête google maps
    Bonjour
    je souhaite parser un fichier JSON qui est le résultat de ma requête sur google map afin de récupérer la durée du trajet.
    Voici le résultat de ma requête
    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
     
    {
       "destination_addresses" : [ "Laval, QC H7H 2M3, Canada" ],
       "origin_addresses" : [ "Laval, QC H7H 1Y3, Canada" ],
       "rows" : [
          {
             "elements" : [
                {
                   "distance" : {
                      "text" : "2,8 km",
                      "value" : 2848
                   },
                   "duration" : {
                      "text" : "6 minutes",
                      "value" : 332
                   },
                   "status" : "OK"
                }
             ]
          }
       ],
       "status" : "OK"
    }
    et voici la mèthode que j'ai implémenté
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    private void drawPath(String scr, String dest, MapView mapView){
     
    			String strUrl="http://maps.googleapis.com/maps/api/distancematrix/json?origins=";
    			//trajet
    			strUrl +=scr+"&destinations="+dest+"&mode=driving&language=fr-FR&sensor=false";
    			StringBuilder response = new StringBuilder();
    			try {
    				URL url=new URL(strUrl);
    				try {
    					HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
    					if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
    				      {
    				          BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
    				          String strLine = null;
    				          while ((strLine = input.readLine()) != null)
    				          {
    				            response.append(strLine + "\n");
    				          }
    				          input.close();
    				      }
    					String jsonOutput = response.toString();
    					Add=jsonOutput;
     
    					 try {
    						 JSONObject jsonObject = new JSONObject(jsonOutput);
    						 JSONObject rowsObject = jsonObject.getJSONObject("rows");
    						 //JSONArray elementsObject = rowsObject.getJSONArray(2); //***error***
    						// JSONObject durationObject = elementsObject.getJSONObject(1);
    						//  String duration = durationObject.getString("text");
    						//duree=duration;
     
    						//dureeTrajet=Integer.parseInt(duration);
     
     
    					} catch (JSONException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    						info.setText("erreur 1");
    					}
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    					info.setText("erreur 2");
    				}
     
    			} catch (MalformedURLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
     
    		}
    Merci pour votre aide

  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
    Décoder du JSON est simple:

    "toto": [ => c'est un Array
    "toto": { => c'est un Object

    Donc:

    JSONArray rowsArray = jsonObject.getJSONArray ("rows");

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Décoder du JSON est simple:

    "toto": [ => c'est un Array
    "toto": { => c'est un Object

    Donc:

    JSONArray rowsArray = jsonObject.getJSONArray ("rows");
    j'ai une erreur quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JSONArray elementsArray= rowsArray.getJSONArray(0);

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Citation Envoyé par balsoni Voir le message
    j'ai une erreur quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JSONArray elementsArray= rowsArray.getJSONArray(0);
    voilà ce que j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JSONObject jsonObject = new JSONObject(jsonOutput);
    						 JSONArray rowsArray = jsonObject.getJSONArray ("rows");
    						 JSONArray elementsArray= rowsArray.getJSONArray(0);
    						 JSONObject durationObject=elementsArray.getJSONObject(1);
    						 String duration=durationObject.getString("text");
    						 int duree=durationObject.getInt("value");

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Citation Envoyé par balsoni Voir le message
    voilà ce que j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JSONObject jsonObject = new JSONObject(jsonOutput);
    						 JSONArray rowsArray = jsonObject.getJSONArray ("rows");
    						 JSONArray elementsArray= rowsArray.getJSONArray(0);
    						 JSONObject durationObject=elementsArray.getJSONObject(1);
    						 String duration=durationObject.getString("text");
    						 int duree=durationObject.getInt("value");
    c'est bon j'ai trouvé voici 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
    try {
    		JSONObject jsonObject = new JSONObject(jsonOutput);
    	        JSONArray rowsArray = jsonObject.getJSONArray ("rows");
    		for(int i=0; i < rowsArray.length(); i++)
    		{
    			 JSONObject rows = rowsArray.getJSONObject(i);
    			 JSONArray elements = rows.getJSONArray("elements");
    			 for(int j=0; j < elements.length(); j++)
    			  {
    			JSONObject element =  elements.getJSONObject(j);
    			JSONObject duration = element.getJSONObject("duration");
    		      JSONObject distance = element.getJSONObject("distance");
    			duree=duration.getString("text");
    			dureeTrajet=duration.getInt("value");
    			 }
    		}

Discussions similaires

  1. Google Maps et JSON
    Par juniordev dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 03/05/2015, 15h02
  2. Parser un fichier de 3000 adresses à mettre sur Google Maps
    Par xoco dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/10/2013, 11h00
  3. [Google Maps] Requête
    Par ABN84 dans le forum APIs Google
    Réponses: 1
    Dernier message: 02/08/2011, 19h05
  4. 4D & Google Maps
    Par gbardy dans le forum 4D
    Réponses: 1
    Dernier message: 30/06/2006, 07h32
  5. Parser une requête HTTP/GET en c ! regex ?
    Par canard75 dans le forum C
    Réponses: 14
    Dernier message: 06/12/2005, 10h08

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