2016-03-22 10 views
-1

Я хочу, чтобы извлечь массив из объекта JSON, но получаю ошибкуJSON ошибка при попытке извлечь jsonarray

Когда я jarray2 = object1.getJSONArray(route);

Я получаю следующую ошибку

APP Крушения: значения для (ДАЛЕЕ следующий JSON)

[{ 
    "options": { 
     "allowUTurn": false 
    }, 
    "latLng": { 
     "lat": 52.42252295423907, 
     "lng": 4.873809814453125 
    }, 
    "name": "Coenplein, A10, Amsterdam, Noord, Amsterdam, MRA, Stadsregio Amsterdam, North Holland, Netherlands, 1035RN, The Netherlands", 
    "_initHooksCalled": true 
}, { 
    "options": { 
     "allowUTurn": false 
    }, 
    "latLng": { 
     "lat": 52.28674750920209, 
     "lng": 4.941873550415039 
    }, 
    "name": "Holendrechterzijweg, Ouderkerk aan de Amstel, Ouder-Amstel, MRA, Stadsregio Amsterdam, North Holland, Netherlands, 1191LJ, The Netherlands", 
    "_initHooksCalled": true 
}, { 
    "options": { 
     "allowUTurn": false 
    }, 
    "latLng": { 
     "lat": 52.0727536539532, 
     "lng": 4.32861328125 
    }, 
    "name": "87, Zwetstraat, Rivierenbuurt, The Hague, MRDH, South Holland, Netherlands, 2515VE, The Netherlands", 
    "_initHooksCalled": true 
}] 

Вот код

try 
    { 
     object1 = new JSONObject(response); 
     jarray1 = object1.getJSONArray("selected_route_data"); 
     for(int i=0;i<jarray1.length();i++) 
     { 
      json1 = jarray1.getJSONObject(i); 
      String route_id = json1.getString("route_id").toString(); 
      String route_name = json1.getString("route_name").toString(); 
      String route = json1.getString("route_data").toString(); 

      jarray2 = object1.getJSONArray(route); 

     } 
    } 
    catch (JSONException e) 
    { 
     Log.e("APP CRASH", e.getMessage()); 

    } 
+0

, на котором 'json' вы работаете? Отправьте сообщение 'json'. – ELITE

+0

У этого JSON нет ни одного поля, которое вы запрашиваете, поэтому разместите его справа. – Eefret

+0

Ваша база - это массив, а не объект. У вас также нет ни одного из элементов, которые вы ищете в своих отдельных объектах. – dharms

ответ

2

Похоже, что JSON, который вы пытаетесь разобрать, не содержит значений, которые вы ищете. Ни один из элементов массива не содержит route_id, route_name или route_data.

0

Вы должны проверить, существует ли элемент в JSON вы разборе, вы можете сделать что-то вроде

String route_id = null; 
if (!json1.optString("route_id").isEmpty()) { 
    route_id = json1.getString("route_id").toString(); 
} 
Смежные вопросы