在颤动中使用 Chopper 库将 JSON 响应转换为模型对象?
Posted
技术标签:
【中文标题】在颤动中使用 Chopper 库将 JSON 响应转换为模型对象?【英文标题】:Converting JSON response to Model Object using Chopper library in flutter? 【发布时间】:2021-02-07 05:38:21 【问题描述】:我正在使用 Chopper 库来调用 REST API 调用。
我已按照Raywenderlich Chopper Tutorial 教程在我的项目中实现 API 调用。
在本教程中,他们使用以下代码将 JSON 响应转换为 Popular 模型对象。
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 包已经足够好,而 chopper 比它的价值更麻烦。
【讨论】:
以上是关于在颤动中使用 Chopper 库将 JSON 响应转换为模型对象?的主要内容,如果未能解决你的问题,请参考以下文章