Flutterアプリのデータベースに文字列のリストを挿入するにはどうすればよいですか、json配列を文字列にエンコードして文字列データ型に保存しようとしましたが、skill配列では毎回明示的なデコードが必要です。データベース。
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ライブラリとムーアライブラリ( https://moor.simonbinder.e )を使用してみました
湿原ではTypeConverter
を使用できます。任意のタイプをサポートされている係留列タイプに変換します。たとえば、jsonを文字列化して、TextColumnに格納できます。 方法についてはドキュメントを参照してください 。しかし、深くネストされたjsonデータを使用すると、エンコードとデコードが少し難しくなる可能性があります。