gpt4 book ai didi

json - 如何使用 SQFLite 或 Moor 库将 JSON 数据存储到 flutter 中的数据库表中

转载 作者:IT王子 更新时间:2023-10-29 06:39:10 26 4
gpt4 key购买 nike

如何在 flutter 应用程序的数据库中插入字符串列表,我尝试通过将 json 数组编码为字符串来将其保存为字符串数据类型,但是技能数组每次都需要显式解码,如下所示,每当我需要从数据库返回对象。

List<User> userResponse = await tempDatabase.allItems;
jsonData = Result.fromJson({
"name": userResponse[0].name,
"skills": jsonDecode(userResponse[0].skills)
});

这是我的 json 响应

{
"result": [
{
"name":"Sidhant Rajora",
"skills": [
"C++",
"Java",
"Python",
"React"
]
},
{
"name":"Adity Rajora",
"skills": [
"C++",
"Java",
"Python"
]
}
]
}

我有这种 JSON 响应,它创建的模型 PODO 就像

class UsersJson {
List<Result> result;

UsersJson({this.result});

UsersJson.fromJson(Map<String, dynamic> json) {
if (json['result'] != null) {
result = new List<Result>();
json['result'].forEach((v) {
result.add(new Result.fromJson(v));
});
}
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.result != null) {
data['result'] = this.result.map((v) => v.toJson()).toList();
}
return data;
}
}

class Result {
String name;
int id;
List<String> skills;

Result({this.name, this.skills});

Result.fromJson(Map<String, dynamic> json) {
name = json['name'];
skills = json['skills'].cast<String>();
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['skills'] = this.skills;
return data;
}
}

现在我不确定我应该采用什么方法将模型插入数据库并从数据库中取回它。我尝试过使用 SQFLite 库和 Moor 库(https://moor.simonbinder.eu)

最佳答案

在荒野中你可以使用TypeConverter。将任何类型转换为支持的系泊柱类型。例如,您可以将 json 字符串化并将其存储在 TextColumn 中。 See the docs for how to .但是对于深度嵌套的 json 数据,编码和解码可能会有点棘手。

关于json - 如何使用 SQFLite 或 Moor 库将 JSON 数据存储到 flutter 中的数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57142463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com