2011-05-30 2 views
1

J'ai parcouru un certain nombre de tutoriels pour avoir une idée de la façon dont nous pouvons analyser l'objet JSON. la structure de la réponse d'objet ma JSON de service Web est comme ceparse json réponse à un objet du service web php

{"posts":[ 

{"gpoint":{"latitude":"18.966364","longitude":"72.811317"}}, 

{"gpoint":{"latitude":"19.07023","longitude":"72.82917"}}, 

{"gpoint":{"latitude":"19.094889","longitude":"72.840157"}}, 

{"gpoint":{"latitude":"19.056601","longitude":"72.901955"}}] 

} 

et voici mon code:

 HttpResponse response= client.execute(post); 

     content = response.getEntity().getContent(); 

     String result = stringConversion(content); 


     jObject = new JSONObject(result); 

     JSONArray gpoint = jObject.getJSONArray("posts"); 

     for (int i = 0; i<gpoint.length();i++) 
     { 

      double geoLat=gpoint.getJSONObject(i).optDouble("latitude"); 
      double geoLong=gpoint.getJSONObject(i).optDouble("longitude"); 

     // double geoLat = gPointObject.getDouble("latitude"); 
     // double geoLong = gPointObject.getDouble("longitude");  
      Log.i(Tag," "+ geoLat); 
      Log.i(Tag," "+ geoLong); 
     } 

} 


catch(JSONException e){ 
    Log.e("log_tag", "Error parsing data "+e.toString()); 
} 

Je ne suis pas en mesure d'analyser cette réponse, chaque fois que je l'analyse, il ne ne pas donner d'exception d'analyse, mais la valeur pour la latitude et la longitude est NaN

Veuillez me dire, où je vais mal? Merci d'avance.

Répondre

3

Essayez ceci:

JSONObject gp; 
for (int i = 0; i<gpoint.length();i++) 
     { 
gp = gpoint.getJSONObject(i); 
double geoLat = gp.getJSONObject("gpoint").optDouble("latitude"); 
double geoLong = gp.getJSONObject("gpoint").optDouble("latitude"); 

     // double geoLat = gPointObject.getDouble("latitude"); 
     // double geoLong = gPointObject.getDouble("longitude");  
      Log.i(Tag," "+ geoLat); 
      Log.i(Tag," "+ geoLong); 
     } 

vous manque une couche d'imbrication.

+0

thnks un tonn ,,,, c'était une erreur tellement stupide :( – SAPHIRE

+0

Content de vous aider, ça arrive tout le temps: vous êtes si près du problème que vous ne remarquez pas votre erreur. – Femi

0

Vous pouvez utiliser GSON. Si vous préparez une structure DTO adéquate, vous pouvez mapper votre JSON en un seul appel de fonction. Je l'utilise dans mon application.