Десериализация списков списков - PullRequest
0 голосов
/ 23 марта 2020

У меня проблема с моим проектом десериализации списков списков, для которого я не могу найти решение. У меня есть три класса: записи, которые имеют ссылку и значение, эксперименты, которые имеют имя и список записей, и проекты, которые имеют имя и список экспериментов. Мой код выглядит как ниже. У меня есть правильное значение от Json для записей и экспериментов, но я не могу получить право от Json для проекта. Вы можете помочь ? Также подходит ли мой Json для проектов? Большое спасибо, ценю вашу помощь.

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,
      };
}`

1 Ответ

0 голосов
/ 29 марта 2020

Я бы предложил использовать эту библиотеку https://github.com/k-paxian/dart-json-mapper Вместо ручного жесткого кодирования 'from / to' JSON методов.

Это позволит вам красиво отобразить ваши сложные JSON в Dart Classes и сделайте код вашей модели простым и понятным.

...