在flutter中使用Chopper库将JSON响应转换为模型对象



我正在使用Chopper库来调用rest API调用。

我遵循了Raywenderlich Chopper教程在我的项目中实现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调用,并且需要解码对Dart模型对象的多个JSON响应。

那么如何解码多个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(......) {
        ......
      }

如何继续?

每个api文件一个请求,这是我认为这是唯一可能的方式,我认为http包足够好,chopper比它的价值更麻烦。

相关内容

  • 没有找到相关文章

最新更新