【发布时间】:2021-07-03 16:32:24
【问题描述】:
@JsonKey(name: "favourite") @Default("") String favourite
在我的 json 中 favourite 是 Y 和 N ,这意味着 true 或 false,可以直接在冻结中转换吗?所以我可以直接使用布尔值,而不是字符串
【问题讨论】:
标签: flutter dart freezed flutter-freezed
@JsonKey(name: "favourite") @Default("") String favourite
在我的 json 中 favourite 是 Y 和 N ,这意味着 true 或 false,可以直接在冻结中转换吗?所以我可以直接使用布尔值,而不是字符串
【问题讨论】:
标签: flutter dart freezed flutter-freezed
您可以为该字段创建自定义转换器。
class MyConverter implements JsonConverter<String, bool> {
const MyConverter ();
@override
MyResponse fromJson(string input) {
switch (input) {
case "Y": return true;
case "N": return false;
default: throw NotSupportedError();
}
}
@override
String toJson(bool input) {
switch (input) {
case true: return "Y";
case false: return "N";
default: throw NotSupportedError();
}
}
}
@JsonKey(name: "favourite") @Default("") @MyConverter() String favourite
【讨论】:
@JsonKey(name: "favourite") @Default(false) @MyConverter() boolean favourite?
'StringBoolConverter.fromJson' ('ProductItem Function(String)') isn't a valid override of 'JsonConverter.fromJson' ('String Function(bool)').
ProductItem 是什么?你从来没有在你的问题中提到过这种类型。