2014-01-12 4 views
2

Привет, ребята я читаю страницу, которые содержат объекты JSON с JAVA (Android)Использование JSON для доступа к определенному атрибуту

Вот что страница содержит:

{ 
    "destination_addresses" : [ "Safi, Maroc" ], 
    "origin_addresses" : [ "Avenue Hassan II, Safi, Maroc" ], 
    "rows" : [ 
     { 
     "elements" : [ 
      { 
       "distance" : { 
        "text" : "1,0 km", 
        "value" : 966 
       }, 
       "duration" : { 
        "text" : "2 minutes", 
        "value" : 129 
       }, 
       "status" : "OK" 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 

Я знаю, как читать со страницы делает этот

JSONObject jArray = new JSONObject(result); 
    String elements = jArray.getString("rows"); 

строку элементы содержат, что:

[{"elements" : [{"distance" : {"text" : "1,0 km","value" : 966},"duration" : {"text" : "2 minutes","value" : 129},"status" : "OK"}]}] 

Но им пытаются получить значение расстояние которое ""

Thx ребята

ответ

1

Попробуйте это ..

JSONObject jObj = new JSONObject(result); 
JSONArray rows = jObj.getJSONArray("rows"); 
for(int i = 0; i < rows.length; i++){ 
    JSONObject obj = rows.getJSONObject(i); 
    JSONArray elements = jObj.getJSONArray("elements"); 
    for(int j = 0; j < elements.length; j++){ 
      JSONObject Jobj = elements.getJSONObject(j); 
      JSONObject distance = Jobj.getJSONObject("distance"); 
      int distance_value = distance.getInteger("value"); 
      JSONObject duration = Jobj.getJSONObject("duration"); 
      int duration_value = duration.getInteger("value"); 
    } 
} 
2

Вы можете посмотреть по этой ссылке:

How to parse JSON in Android

Но для вашей конкретной проблемы вы хотите назвать что-то вроде:

int value = jArray.getJSONObject("rows").getJSONObject("elements").getJSONArray("distance").getInteger("value"); 
+0

Да, что работа, Ty – Coldfire

Смежные вопросы