Flutter反序列化列表的列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter反序列化列表的列表相关的知识,希望对你有一定的参考价值。

我的项目无法对列表的列表进行反序列化,而我找不到解决方案。我有三类:具有引用和值的记录,具有名称和记录列表的实验以及具有名称和实验列表的项目。我的代码如下所示。我有正确的from Json来进行记录和实验,但无法从正确的项目上获得Json的帮助。你能帮我吗 ?我对项目的toJson正确吗?非常感谢,感谢您的帮助。

class Project {
  final String name;
  final List<Experiment> experiments;
  Project({this.name, this.experiments});

  factory Project.fromJson(Map<String, dynamic> json) {
      }

  Map<String, dynamic> toJson() => {
        'name': name,
        'experiments': experiments,
      };
}

class Experiment {
  String name;
  List<Record> records;
  Experiment({this.name, this.records});

   factory Experiment.fromJson(Map<String, dynamic> json) {
    var list = json['records'] as List;
    List<Record> imagesList = list.map((i) => Record.fromJson(i)).toList();
   return Experiment(records: imagesList, name: json['name']);
  }

   Map<String, dynamic> toJson() => {
        'name': name,
        'records': records,
      };
}

class Record {
  final double time;
  final double value;
  Record({this.time, this.value});

  factory Record.fromJson(Map<String, dynamic> json) {
    return Record(time: json['time'], value: json['value']);
  }

  Map<String, dynamic> toJson() => {
        'time': time,
        'value': value,
      };
}`
答案

我建议使用此库https://github.com/k-paxian/dart-json-mapper而不是手动对'from / to'JSON方法进行硬编码。

它将使您可以将复杂的JSON很好地映射到Dart类并使模型代码简洁明了。

以上是关于Flutter反序列化列表的列表的主要内容,如果未能解决你的问题,请参考以下文章

将 json 反序列化为匿名类型列表

无法使用 Jackson XML 直接在根元素内反序列化列表

从要显示的文件中反序列化对象列表

JSON杰克逊序列化反序列化列表列表

在spring mvc控制器接收json并反序列化为对象列表

使用 Jackson 反序列化对象列表