Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何将对象列表转换为地图列表_Flutter_Dart - Fatal编程技术网

Flutter 如何将对象列表转换为地图列表

Flutter 如何将对象列表转换为地图列表,flutter,dart,Flutter,Dart,有一个Day类和Day对象列表,我需要从这些对象的映射转换为列表 class Day{ double open; double high; double low; double close; double volumeTo; Day({this.open, this.high, this.low, this.close, this.volumeTo}); } List historical = [ new Day(open: 42.6,

有一个Day类和Day对象列表,我需要从这些对象的映射转换为列表

class Day{
    double open;
    double high;
    double low;
    double close;
    double volumeTo;

    Day({this.open, this.high, this.low, this.close, this.volumeTo});
}

List historical = [
    new Day(open: 42.6, high: 53.9, low: 39.5, close:56.00, volumeTo: 5000.0),
    new Day(open: 42.6, high: 53.9, low: 39.5, close:56.00, volumeTo: 5000.0),
    new Day(open: 42.6, high: 53.9, low: 39.5, close:56.00, volumeTo: 5000.0),
    new Day(open: 42.6, high: 53.9, low: 39.5, close:56.00, volumeTo: 5000.0),
];
最后,我需要这样的例子:

List sampleData = [
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
];
final sampleData = historical.map((h) => {"open": h.open, "high": h.high, "low": h.low, "close": h.close, "volumeTo": h.volumeTo}).toList();
使用如下方法:

List sampleData = [
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
];
final sampleData = historical.map((h) => {"open": h.open, "high": h.high, "low": h.low, "close": h.close, "volumeTo": h.volumeTo}).toList();
使用如下方法:

List sampleData = [
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
    {"open":42.6, "high":53.9, "low":39.5, "close":56.00, "volumeto":5000.0},
];
final sampleData = historical.map((h) => {"open": h.open, "high": h.high, "low": h.low, "close": h.close, "volumeTo": h.volumeTo}).toList();
Day().historical.map((e)=>{}.toList();
Day().historical.map((e)=>{}.toList();

如果您使用的是android studio,您可以安装一个插件来帮助生成toMap()和fromMap()代码。插件的名称是Dart数据类

安装插件后,生成如下帮助函数

class Day{
  double open;
  double high;
  double low;
  double close;
  double volumeTo;

  Day({this.open, this.high, this.low, this.close, this.volumeTo});

  factory Day.fromMap(Map<String, dynamic> map) {
    return new Day(
      open: map['open'] as double,
      high: map['high'] as double,
      low: map['low'] as double,
      close: map['close'] as double,
      volumeTo: map['volumeTo'] as double,
    );
  }

  Map<String, dynamic> toMap() {
    // ignore: unnecessary_cast
    return {
      'open': this.open,
      'high': this.high,
      'low': this.low,
      'close': this.close,
      'volumeTo': this.volumeTo,
    } as Map<String, dynamic>;
  }
}

// this helper method helps convert to a list of Map
dynamic getListMap(List<dynamic> items) {
  if (items == null) {
    return null;
  }
  List<Map<String, dynamic>> dayItems = [];
  items.forEach((element) {
    dayItems.add(element.toMap());
  });
  return dayItems;
}


void somthoing(){
 var listOfMap = getListMap(historical);
}


如果您使用的是android studio,您可以安装一个插件来帮助生成toMap()和fromMap()代码。插件的名称是Dart数据类

安装插件后,生成如下帮助函数

class Day{
  double open;
  double high;
  double low;
  double close;
  double volumeTo;

  Day({this.open, this.high, this.low, this.close, this.volumeTo});

  factory Day.fromMap(Map<String, dynamic> map) {
    return new Day(
      open: map['open'] as double,
      high: map['high'] as double,
      low: map['low'] as double,
      close: map['close'] as double,
      volumeTo: map['volumeTo'] as double,
    );
  }

  Map<String, dynamic> toMap() {
    // ignore: unnecessary_cast
    return {
      'open': this.open,
      'high': this.high,
      'low': this.low,
      'close': this.close,
      'volumeTo': this.volumeTo,
    } as Map<String, dynamic>;
  }
}

// this helper method helps convert to a list of Map
dynamic getListMap(List<dynamic> items) {
  if (items == null) {
    return null;
  }
  List<Map<String, dynamic>> dayItems = [];
  items.forEach((element) {
    dayItems.add(element.toMap());
  });
  return dayItems;
}


void somthoing(){
 var listOfMap = getListMap(historical);
}


VSCode也有类似的插件。很好。。我没有使用VSCode,所以我不知道。但是谢谢,有一个类似的VSCode插件。太好了。。我没有使用VSCode,所以我不知道。但是谢谢