【发布时间】:2021-11-28 09:53:32
【问题描述】:
我正在尝试序列化一个类,以便可以将其保存在共享首选项中。对于序列化,我使用 Flutter 的 JsonSerializable 包。
我生成的代码如下所示:
class calculation {
List<int>? calcs;
List<int>? results;
List<int>? selectedSpots;
List<double>? linedataX;
List<double>? linedataY;
Map<int, List<int>>? someMap;
calculation({
this.calcs,
this.results,
this.selectedSpots,
this.linedataX,
this.linedataY,
this.someMap,
});
factory calculation.fromJson(Map<String, dynamic> jsonData) {
return calculation(
calcs: jsonData['calcs'].cast<int>(),
results: jsonData['results'].cast<int>(),
selectedSpots: jsonData['selectedSpots'].cast<int>(),
linedataX: jsonData['linedataX'].cast<double>(),
linedataY: jsonData['linedataY'].cast<double>(),
someMap: (jsonData['someMap'] as Map?)?.map(
(k, e) => MapEntry(int.parse(k as String), e as List<int> ),
),
);
}
static Map<String, dynamic> toMap(calculation calc) => {
'calcs': calc.calcs,
'results': calc.results,
'selectedSpots': calc.selectedSpots,
'linedataX': calc.linedataX,
'linedataY': calc.linedataY,
'someMap': calc.someMap?.map((k, e) => MapEntry(k.toString(), e)),
};
只有当我的地图是 Map
Map
知道如何正确投射到列表吗?
【问题讨论】:
-
如果你有一个 JSON 响应,你可以试试这个 [javiercbk.github.io/json_to_dart/] 这会给你一个非常好的格式。所以你不需要自己做正确的事情,也不会出现这种类型的错误。
标签: json flutter serialization sharedpreferences