#json #flutter #dart #multidimensional-array
#json #трепетание #dart #многомерный массив
Вопрос:
Я считываю некоторые данные json с конечной точки http и продолжаю работать с результатом следующим образом:
var decodedResponse = json.decode(response.body);
if(decodedResponse['ingredients']['additives'] != null) {
getAdditiveList = await getAdditiveNames(decodedResponse['ingredients']['additives']);
decodedResponse['ingredients']['additives'] = getAdditiveList;
}
Поскольку иногда ключ «добавки» или даже «ингредиенты» не является частью ответа json, я получаю следующую ошибку:
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("additives")
Я думаю, что следующее технически сработало бы как проверка, но это не выглядит хорошей идеей:
if(decodedResponse.containsKey("ingredients")){
if(decodedResponse['ingredients'].containsKey("additives")){
}
}
Любая помощь будет признательна! Спасибо!
Ответ №1:
Похоже, что иногда ваше значение decodedResponse равно null. Вы должны проверить это следующим образом:
if(decodedResponse != null amp;amp; decodedResponse['ingredients'] != null amp;amp; decodedResponse['ingredients']['additives'] != null){}
Таким образом, вы всегда будете проверять, имеет ли он значение, потому что он выглядит так, как будто ваш ответ от API иногда дает вам null.