2015-07-09 3 views
0

У меня объект JSON как это:«Нет значения для» исключения для getJSONArray

{ 
    "Successful": true, 
    "Value": { 
    "Materials":[{ 
     "MaterialID": 37628, 
     "MaterialID": 0, 
     "MaterialNo": 26868, 
     "Type": 0, 
     "MaterialName": Copper 
    }], 
    "Prices": [] 
    } 
} 

Я пытаюсь получить материалы массив как это:

public ArrayList<Material> parseMaterial (JSONObject object) 
    { 
    try 
     { 
     JSONArray materialArray = object.getJSONArray("Materials"); 
     } 
     catch (JSONException e) 
     { 
     Log.d("JSONParser=>parseMaterial", e.getMessage()); 
     } 
    } 

Я получаю это исключение:

не

JSONParser => parseMaterial: нет значения для материалов

Можете ли вы рассказать мне, что не так с кодом? Благодарю.

ответ

1

Вы пропустили шаг: изменение

JSONArray materialArray = object.getJSONArray("Materials"); 

в

JSONObject value = object.getJSONObject("Value"); 
JSONArray materialArray = value.getJSONArray("Materials"); 

getJSONArray не «Поиск» весь объект (это может привести к непредсказуемым результатам, если у вас есть несколько материалов в объекте), только первый уровень.

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