flutter - 如何使用从 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');
}
}
解决方案
来自 api 的响应是列表,它不是字符串。
List<Quarter> _listQuarter= [];
var json = jsonDecode(response.body) as List<dynamic>;
json.forEach((element) {
_listQuarter.add( -do all your workaround- );
});
return _listQuarter;
推荐阅读
- python - 从 Python 中的函数获取 SQLITE 列信息
- sql-server - 碎片分析存储过程需要大量时间来执行
- azure - 带有 Terraform 的 Azure Devops 存储库 - 已经存在
- sql - 基于String在SQL(Snowflake)中选择一行
- python - 如何通过特定条件创建新列?
- tensorflow.js - tensorflow.js webcam-transfer-learning 示例返回错误的形状
- java - 使用名字的前 2 个字母和姓氏的 4 个字母来创建具有随机数的用户名,例如 Michael + Jackson= JackMi42
- angular - 解析器错误:表达式末尾的属性访问的预期标识符 [{{ coin."24H" }}]
- react-native - 如何在来自管理的博览会的反应本机项目上使用相同的密钥库文件
- redcap - 是否可以根据以前的答案创建一个自动填充的 REDCap 问题?