json - 带有 json_serializable 的 JSON 编码/解码列表
问题描述
我正在使用这些包:https://pub.dev/packages/json_annotation,https://pub.dev/packages/json_serializable
我想在我的颤振应用程序中编码/解码对象列表。列表中的类如下:
@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 discord 中的 Null
推荐阅读
- android - 如何在 React Native 中的启动画面后禁用后退按钮
- java - 可变字段不应该是“公共静态的”
- javascript - 使用javascript以特定顺序对具有十进制值的数组进行排序
- javascript - 像 curl 一样发送 post 数据
- google-apps-script - Apps 基于脚本时间的触发器何时触发
- javascript - 查看器中的模型聚合 - 坐标问题
- javascript - 如何让我的主题按钮更换器影响我网站上的所有页面而不仅仅是主页?
- mysql - 具有可变列数的mysql查询
- docker - docker stats 命令和 docker rest api memory stats 之间的不一致
- reactjs - ReactJS:即使在 URL 更改后也没有加载组件