如何使用从API调用返回的列表数据

时间:2020-11-07 17:05:29

标签: flutter flutter-dependencies

我正在尝试从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');
  }
}

1 个答案:

答案 0 :(得分:0)

api的响应是list,而不是String。

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