【问题标题】:How to use List data returned from an API call如何使用从 API 调用返回的列表数据
【发布时间】:2021-02-20 02:41:01
【问题描述】:

我试图从 API 调用中取回数据列表并将此数据列表发送到我为它创建的本地 sqlite 数据库。我遇到了数据类型为 的问题,我不确定如何将其转换为可用的东西。我只是想将 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');
  }
}

【问题讨论】:

  • 调用API调用函数后。然后使用forEach() 并将每个元素添加到 SQLllite DB。在您的情况下,它将是 quaters.foreach((index)=&gt; QuarterDBProvider.quarterDB.newQuarter(quarters[index]));
  • 尝试在.map()之后添加.toList()

标签: flutter flutter-dependencies


【解决方案1】:

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

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

【讨论】:

  • 你在做所有我的解决方法是什么意思?将它添加到我的 sqlite 数据库那里?
猜你喜欢
  • 1970-01-01
  • 2019-11-23
  • 2016-10-16
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 2021-08-24
  • 2022-01-22
相关资源
最近更新 更多