我创建了一张地图,但我希望某些键(位置和工作)具有多个值。为每个新的 kay 值创建一个新的“客户”是最佳实践吗?或者我可以制作位置和工作地图吗? 我有这个:
class Client {
String? name;
String? status;
String? location;
String? job;
String? notes;
String? priority;
String? estimate;
String? doe;
int? time;
Client.fromJson(Map<String, dynamic> json) {
name = json['name'];
status = json['status'];
location = json['location']; // multiple locations per client (name)
job = json['job']; // multiple jobs per client & location combo
notes = json['notes'];
priority = json['priority'];
estimate = json['estimate'];
doe = json['doe'];
time = json['time'];
}
final map = {
"name": nameController.text,
"location": locationController.text,
"job": jobController.text,
"notes": notesController.text,
"priority": priority,
"status": status,
"time": DateTime.now().millisecondsSinceEpoch,
};
我本质上想要这个输出,但我不确定该走哪条路:
name1, location1, jobA
name1, location1, jobB
name1, location2, jobC
name2, location2, jobD
我还没有尝试过任何东西。我对编码非常陌生,不知道什么最适合数据库功能。
您对
Client
类有一个很好的方法,如果位置和工作是复杂的对象,您可以继续使用相同的方法。
class Location {
// Add your fields here
Location.fromJson(Map<String, dynamic> map) {
// assign properties to the map values
}
}
class Job {
// Add your fields here
Job.fromJson(Map<String, dynamic> map) {
// assign properties to the map values
}
}
然后在
Client
中使用它们
Client.fromJson(Map<String, dynamic> json) {
name = json['name'];
status = json['status'];
location = List.from(json['location']).map((locationMap) => Location.fromJson(locationMap)).toList(),
job = List.from(json['job']).map((jobMap) => Job.fromJson(jobMap)).toList,
// Other fields...
}
如果您没有复杂的对象,则只需使用
List<Object>
(用正确的类型替换对象)。
附注你提到了数据库,所以你可以实现
toJson
方法,它将所有对象序列化回 Map
,这样你就可以轻松地将它们存储在数据库中。
Map<String, Object> toJson() {
return <String, Object>{
'fieldName': value,
// include all fields and their values
};
}