地图键可以是地图本身吗?

问题描述 投票:0回答:1

我创建了一张地图,但我希望某些键(位置和工作)具有多个值。为每个新的 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

我还没有尝试过任何东西。我对编码非常陌生,不知道什么最适合数据库功能。

arrays flutter maps
1个回答
0
投票

您对

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
    };
}
© www.soinside.com 2019 - 2024. All rights reserved.