首页 > 解决方案 > 如何使用从 API 调用返回的列表数据

问题描述

我试图从 API 调用中取回数据列表并将此数据列表发送到我为它创建的本地 sqlite 数据库。我遇到了数据类型为 <List> 的问题,我不确定如何将其转换为可用的东西。我只是想将 api 调用中的数据分配给一个变量,这样我就可以简单地将它发送到 sqlite 数据库。欢迎任何建议!谢谢!

这是我试图从 API 调用中获取数据并将其发送到 sqlite 数据库的代码。

if(user.success) {
  Quarter quarters;
  quarters = await getQuarters();
  QuarterDBProvider.quarterDB.newQuarter(quarters);
}

这是执行 API 调用的地方

Map data;

List<Quarter> quarterFromJson(String str) =>
    List<Quarter>.from(json.decode(str).map((x) => Quarter.fromJson(x)));

Future<List<Quarter>> getQuarters() async {
  final http.Response response = await http.get(
    'https://myfakeapi/quarters',
  );
  if (response.statusCode < 400) {
    return quarterFromJson(response.body);
  } else {
    throw Exception('Failed to get quarters');
  }
}

标签: flutterflutter-dependencies

解决方案


来自 api 的响应是列表,它不是字符串。

List<Quarter> _listQuarter= [];
var json = jsonDecode(response.body) as List<dynamic>;
    json.forEach((element) {
        _listQuarter.add(   -do all your workaround-   );
    });
return _listQuarter;

推荐阅读