如何将地图数据转换为颤动中的对象列表?

Posted

技术标签:

【中文标题】如何将地图数据转换为颤动中的对象列表?【英文标题】:How to convert map data to list of objects in flutter? 【发布时间】:2020-10-15 01:57:03 【问题描述】:

如何将地图转换为颤振中的对象列表。

样本数据,

 Model (
  key1: value1,
  key2: value2, 
  key3:value 3,
 )

预期结果,

  [0]: Model key1:value1,
  [1]: Model key2:value2,
  [2]: Model key3:value3

【问题讨论】:

我真的不清楚你要什么。通过“样本数据”,您是指使用 key1key2key3 命名参数调用某个 Model 类的构造函数吗?是您需要解析的文本吗? Model 应该是 Map 吗?我也不清楚预期结果应该代表什么。 示例数据是一个模型类,其中key1、key2和key3是它的字段。每个字段都有相应的值。我有另一个带有 field1 和 field2 的模型类。现在我必须将示例数据转换为第二个模型类的列表。 key1、key2 和 key3 在 field1 中,而 value1、value2 和 value3 在 field2 中 【参考方案1】:
class SomeDataClass 
  final String option1;
  final String option2;
  final String option3;
  final String option4;
  final String option5;

  const SomeDataClass(
    @required this.option1,
    @required this.option2,
    @required this.option3,
    @required this.option4,
    @required this.option5,
  );

  factory SomeDataClass.fromMap(Map<String, dynamic> map) 
    return SomeDataClass(
      option1: map['option1'] as String,
      option2: map['option2'] as String,
      option3: map['option3'] as String,
      option4: map['option4'] as String,
      option5: map['option5'] as String,
    );
  

  Map<String, dynamic> toMap() 
    return 
      'option1': this.option1,
      'option2': this.option2,
      'option3': this.option3,
      'option4': this.option4,
      'option5': this.option5,
    ;
  


void main()
  final optionsList = [
    
      'option1': 'you can use fromMap and toMap methods',
      'option2': 'you can use some serialization libraries such as metinoned in opton 3',
      'option3': 'json_serializable',
      'option4': 'I am going to show you the from and to map method',
      'option5': 'good luck',
    
    // there could be other options in the list.
  ];
  final someMappedObjectList = <SomeDataClass>[];
  for(var map in optionsList)
    final someObject = SomeDataClass.fromMap(map);
    someMappedObjectList.add(someObject);
  
  
  // now you can use the someMappedObjectList.

【讨论】:

以上是关于如何将地图数据转换为颤动中的对象列表?的主要内容,如果未能解决你的问题,请参考以下文章

使用 StreamBuilder 获取 Firestore 文档,其中包含颤动中的地图列表

颤动中的地图键是不是有“startsWith”方法?

在颤动中从地图<日期时间,列表>中删除项目

将 CSV 数据转换为 scala 中的地图列表

将Java中的地图列表转换为火花中的数据集

Terraform - 如何将列表转换为地图(如何使用 terraform 获取 AMI 标签)