Преобразование ответа JSON в объект модели с использованием библиотеки Chopper во флаттере?
Я использую библиотеку Chopper для вызова остальных вызовов API.
Я следовал руководству Raywenderlich Chopper Tutorial, чтобы реализовать вызовы API в моем проекте.
В этом руководстве они использовали приведенный ниже код для преобразования ответа JSON в объект популярной модели.
try {
var mapData = json.decode(body);
**var popular = Popular.fromJson(mapData);**
return response.copyWith<BodyType>(body: popular as BodyType);
} catch (e) {
chopperLogger.warning(e);
return response.copyWith<BodyType>(body: body);
}
Это хорошо. Но в моем проекте мне нужно сделать несколько вызовов API и декодировать несколько ответов JSON на объекты модели Dart.
Итак, как декодировать ответы на несколько вызовов API? Мне нужно сделать что-то вроде ниже:
if(mapData['popularResponse'] != null) {
Popular popularResponse = Popular.fromJson(mapData);
return response.copyWith<BodyType>(
body: popularResponse as BodyType);
} else if(mapData['articleResponse'] != null) {
Article articleResponse = Article.fromJson(mapData);
return response.copyWith<BodyType>(
body: articleResponse as BodyType);
} else if(......) {
......
}
Как поступить дальше?
1 ответ
Один запрос на файл api, это единственный способ, которым я вижу это возможным, я думаю, что пакет http достаточно хорош, а прерыватель - больше проблем, чем его ценность.