问题描述
我正在使用软件包:https://pub.dev/packages/json_annotation、https://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