带有 json_serializable

问题描述

我正在使用软件包:https://pub.dev/packages/json_annotationhttps://pub.dev/packages/json_serializable

我想在我的 Flutter 应用程序中编码/解码对象列表。列表中的类如下:

@JsonSerializable()
class Trial {
  final ProtocolType type;
  List<List<double>> data;
  @JsonKey()
  final DateTime date;

  Trial({this.type,this.data,this.date});
  Map<String,dynamic> toMap() {
    return {'type': this.type,'data': this.data,'date': this.date};
  }

  factory Trial.fromJson(Map<String,dynamic> json) => _$TrialFromJson(json);
  Map<String,dynamic> toJson() => _$TrialToJson(this);
}

我想对这些项目的列表进行解码/编码,但我不知道该怎么做,所以我创建了一个新类:

@JsonSerializable()
class TrialList {
  final List<Trial> trials;
  TrialList({this.trials});
  factory TrialList.fromJson(List json) => _$TrialListFromJson(json);
  List toJson() => _$TrialListToJson(this);
}

注意这个新类中的 List toJson()。似乎 Json_serializable 只想要我解码/编码地图,有没有办法支持列表?

解决方法

解决方案:

@JsonSerializable()
class TrialList {
  final List<Trial> trials;
  TrialList({this.trials});
  factory TrialList.fromJson(json) => _$TrialListFromJson({'trials': json});
  List toJson() => _$TrialListToJson(this)['trials'];
}

归功于 /r/FlutterDev 不和谐的 Null