- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有问题,我从API提取数据并保存到本地数据库。
因此,作为Flutter的新手,我想找到一种将数据保存在数据库中以供离线支持的方法。
这个问题错误
Unhandled Exception: type 'String' is not a subtype of type 'List<dynamic>' in type cast
List<Employee> employeeFromJson(String str) =>
List<Employee>.from(json.decode(str).map((x) => Employee.fromJson(x)));
String employeeToJson(List<Employee> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Employee {
int id;
String id_surat;
String nama;
String nomor;
String arti;
Employee({
this.id,
this.id_surat,
this.nama,
this.nomor,
this.arti,
});
factory Employee.fromJson(Map<String, dynamic> json) => Employee(
id_surat: json["id_surat"],
nama: json["nama"],
nomor: json["nomor"],
arti: json["arti"],
);
Map<String, dynamic> toJson() => {
"id_surat": id_surat,
"nama": nama,
"nomor": nomor,
"arti": arti,
};
}
class EmployeeApiProvider {
Future<List<Employee>> getAllEmployees() async {
var url = "EXAMPLE";
Response response = await Dio().get(url);
print(response.data);
return (response.data as List).map((employee) {
print('Inserting $employee');
DBProvider.db.createEmployee(Employee.fromJson(employee));
}).toList();
}
}
[
{
id_surat: "1",
nama: "Al Fatihah",
nomor: "1",
arti: "Pembukaan"
},
{
id_surat: "2",
nama: "Al Baqarah",
nomor: "2",
arti: "Sapi Betina"
},
{
id_surat: "3",
nama: "Ali Imran",
nomor: "3",
arti: "Keluarga Imran"
},
{
id_surat: "4",
nama: "An Nisaa",
nomor: "4",
arti: "Wanita"
},
]
最佳答案
我认为您应该替换:
String employeeToJson(List<Employee> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
String employeeToJson(List<Employee> data) => json.encode(data);
List<Employee>
。
List<dynamic>.from
和创建
List<dynamic>
的内部函数。根据文档,
List<dynamic>
不可直接编码。
关于api - 从API刷新FetchData并使用sqflite保存本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701996/
我有一个 sqflite 数据库,其中设置了一个表,其中所有列都放在一边,形成了唯一的键,设置为 BLOB 数据类型。目的是存储为二进制数据。我对 Dart 和 flutter 非常陌生,所以我让事情
我得到了sqflite函数Future>返回的getSentences(句子是具有int id和String句子的类)。现在我要在我的主窗口小部件树中列出该列表。因此,我创建了此功能: Future
我只是想将用户保存到我的数据库中。以下是我的用户模型类 class User { int _id; String _userId; String _mobileNumber; User
我正在尝试从我的 SQFlite 数据库中读取下拉列表的列表部分,但不知道如何读取。 来自 database_helper 的查询 Future> getFieldData(String animal
我试图通过创建一个简单的 CLI 来测试 SQFlite API。我可以使用 Android Studio 和 VS Code 从同一目录运行默认示例应用程序,我也可以运行其他简单的 CLI 程序。以
我正在将 sqflite 用于我的 flutter 项目,现在,我想备份然后恢复它。我搜索了这个问题,但找不到结果。有什么办法吗? 谢谢。 最佳答案 依赖关系 dependencies: encr
我有以下rawQuery final maps = await db.rawQuery(""" select r.id, r.name, r.description,r.created_by, a.i
我想使用 sqflite package存储我的对象。我读了一些articles , tutorials和 examples关于它。至此我明白了一切。但它们都没有涵盖我的用例: 我有一个名为 Foo
我有两个相关的表,在我的模式中声明了一个外键: CREATE TABLE Collection( id INTEGER PRIMARY KEY, name TEXT, star
我正在创建一个应用程序并需要一个数据库。该数据库包含位置表和兴趣点表。这是一对多的关系。 一个位置有几个兴趣点。 现在我试图用 sqflite 来做这种关系,但失败了。 我已经尝试添加外键,但它不起作
我有以下查询,它从员工表中选择,其中名称为“max”,ID 不在 123 和 444 中。不在ID中可以在未来增长。但我收到错误为 错误 (8023):[错误:flutter/lib/ui/ui_da
我正在尝试在 android 中创建 Sqflite 数据库,并在创建时插入一些记录。我不想有 asset_db,因为我必须在一张表中只插入 5-6 条记录。 我试着做这样的事情 initDataba
我将所有 API 数据存储到缓存中。一些 API 有超过 10000 个数据。 postman 响应时间在一秒内。但在应用程序中导航到下一页非常慢。我使用了这段代码: onPressed: (
如何在sqflite中快速插入多条记录?标准的快速方法是: await database.insert(table, object.toMap()) 但是我不认为用循环一对一插入记录是个好主意。或者我
我已经阅读了许多关于如何在 Flutter 中实现 Sqflite 的教程和示例。其他所有示例都是仅使用一个模型或数据库表完成的。如这些教程中所定义: https://pub.dartlang.org
如何使用 flutter 和 sqflite 从 Assets 中打开现有数据库?我阅读了本指南: https://github.com/tekartik/sqflite/blob/master/do
我正在使用使用 SQLite 数据库的 flutter 构建和应用程序。我使用这段代码创建了第一个表: void _createDb(Database db, int newVersion) asy
我使用 flutter sqflite 创建了一个本地数据库。当我在该列表中添加或删除某些内容时,我想听取该数据库上任务列表的长度并更新任务总数。但是当我调用 provider.of(context)
以下仅发生在刚刚在代码中创建的数据库中。以前存在的数据库工作正常。 我有数据库助手的常用单例设置,相关部分是: Future get database async { // ... db ??
我的应用中有两个模型,分别命名为 Basket 和 Items。模型篮包含项目列表。所以如下: 篮子: int id string name string imageUrl List items 项目
我是一名优秀的程序员,十分优秀!