2012-04-26 6 views
-1
.

. Нужен ли мне синтаксический анализ json из следующего URL-адреса ниже и поместить данные о расстоянии и длительности в списке?Разбор JSON. Карты Google.

http://maps.googleapis.com/maps/api/directions/json?origin=-25.3641,-49.2857&destination=-25.3928,-49.2728&region=en&sensor=false

+0

Уверен, это возможно. Это просто вопрос получения данных JSON и включение его в список. – Jack

ответ

0

Ваш вопрос не очень понятно. вам нужно сначала разобрать json. Вы можете поместить проанализированные данные в ArrayList из Bundle. Сделайте что-то вроде следующего:

String response = getResponseFromGoogleMaps(); //this function will fetch the response. write it in your way 
ArrayList<Bundle> list = new ArrayList<Bundle>(); 
try { 
     JSONObject json = new JSONObject(response); 
     JSONArray routes = json.getJSONArray("route"); 
     JSONArray legs = routes.getJSONArray(0); 
     JSONArray steps = legs.getJSONArray(0); 
     for(int i=0;i<steps.length();i++) { 
      JSONObject singleStep = steps.getJSONObject(i); 
      JSONObject duration = singleStep.getJSONObject("duration"); 
      Bundle dur = new Bundle(); 
      dur.putString("text", duration.getString("text")); 
      dur.putString("value", duration.getString("value")); 
      JSONObject distance = singleStep.getJSONObject("distance"); 
      Bundle dis = new Bundle(); 
      dis.putString("text", distance.getString("text")); 
      dis.putString("value", distance.getString("value")); 
      Bundle data = new Bundle(); 
      data.putBundle("duration", dur); 
      data.putBundle("distance", dis); 
      list.add(data); 
     } 
} catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
} 

Затем создать свой собственный список адаптер (который должен начинаться от BaseAdapter), который обрабатывает ArrayList<Bundle>. И все готово!

+0

В этом случае, как и ListAdapter? – user1265628

+0

Извините? Я не получил ваш вопрос! – jtanveer