我有一个名为Player
( player.dart
) 的类,它有一个名为 的字段isCaptain
:
@JsonKey(name: "is_captain") @Default(false) bool isCaptain,
上面的行在 中产生以下内容player.g.dart
:
isCaptain: json['is_captain'] as bool,
Player
当我使用Player.fromJson(playerJson)
缺少is_captain
键的对象创建对象时,isCaptain
将其设置为null
对象Player
而false
不是@Default
.
当我添加defaultValue: false
如下@JsonKey(...)
:
@JsonKey(name: "is_captain", defaultValue: false) @Default(false) bool isCaptain,
...实施player.g.dart
更改为:
isCaptain: json['is_captain'] as bool? ?? false,
现在一切都按预期工作,如果is_captain
API 响应中不存在,则isCaptain
获取默认值false
.
我很困惑,因为freezed 的文档说添加也会@Default
自动添加defaultValue
,@JsonKey(...)
但这里似乎并非如此。我错过了什么?