Json 颤振HiveDb将项目添加到列表中
目前我被困在这里,我目前的思维方式无法找到一个解决方案,即在Flatter Hive Db中向列表中添加一个项目,并从列表中删除一个项目,然后从Hive Db中删除一个项目。我想要的是,用户将更新数据库中的任何数据,但其中存在一些限制 这就是我想要实现的目标Json 颤振HiveDb将项目添加到列表中,json,flutter,dart,nosql,hivedb,Json,Flutter,Dart,Nosql,Hivedb,目前我被困在这里,我目前的思维方式无法找到一个解决方案,即在Flatter Hive Db中向列表中添加一个项目,并从列表中删除一个项目,然后从Hive Db中删除一个项目。我想要的是,用户将更新数据库中的任何数据,但其中存在一些限制 这就是我想要实现的目标 { "title": "List1", "data": [ { "title": " titl
{
"title": "List1",
"data": [
{
"title": " title",
"details": "details",
"data": [
{
"title": " title",
"details": " details"
},
{
"title": " title",
"details": " details"
}
]
},
{
"title": " title",
"details": " details",
"data": [
{
"title": " title",
"details": "details"
},
{
"title": " title",
"details": " details"
}
]
}
]
}
数据模型
0
任何建议都会有帮助。多谢各位
class TodoList {
String title;
List<Todo> todos;
TodoList({this.title, this.todos});
TodoList.fromJson(Map<String, dynamic> json)
: title = json['title'],
todos = json['todos'];
Map<String, dynamic> toJson() => {
'title' : title,
'todos': todos
};
}
class Todo {
Todo({this.details, this.done, this.title});
String title;
String details;
bool done = false;
List<Task> task;
Todo.fromJson(Map<String, dynamic>parsedJson)
:title = parsedJson['title'],
details = parsedJson['details'],
done = parsedJson['done'],
task = parsedJson['task'];
Map<String, dynamic> toJson() => {
'title': title,
'details': details,
'done': done,
'task': task
};
}
class Task {
Task({this.details, this.done, this.title});
String title;
String details;
bool done =false;
Task.fromJson(Map<String, dynamic>parsedJson)
:title = parsedJson['title'],
details = parsedJson['details'],
done = parsedJson['done'];
}
final todoData = todos.getAt(0);
Map todoJson = jsonDecode(todoData);
final allData = TodoList.fromJson(todoJson);
print(allData);
_listTittle = allData.title;
print(_listTittle);
List data = allData.todos;
Todo todo = data == null ? todoIns : data[index];
bool done = todo.done;
done = done == null ? false : done;
return MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {},
child: Container(
color: Colors.white,
child: ListTile(
leading: IconButton(
icon: done
? Icon(
Icons.done,
color: Colors.red,
)
: Icon(
Icons.done,
),
onPressed: () {
final todoData = Todo(
details: todo.details,
title: todo.title,
done: done ? false : true);
data.insert(index, todoData);
final listData =
TodoList(title: allData.title, todos: data);
updataTodo(listData, index);
}),