我是飞镖开发的新手...
我不知道如何将Json_serializable包与枚举类型一起使用。我的数据库的枚举值是整数,但是看起来JSON_Serializable希望该值是枚举名称的字符串表示形式。IE:
枚举分类{无,打开,不活动,关闭,默认,删除,零记录}
数据库的分类为整数值(4:默认值)
从JSON加载时出现异常
例外:无效的参数:4
不是受支持的值之一:无,打开,不活动,关闭,默认,删除,零记录
如何强制JSON_Serializable将4视为“默认”?
答案 0 :(得分:5)
基本上,您有两个选择。 (AFAIK)
在您的枚举文件中,可以为每个值添加一个@JsonValue(VALUE)
批注,json_serializable将使用该值代替名称,并且实际上可以是任何值。
您可以按如下所示进行枚举:
enum Classification {
@JsonValue(0)
None,
@JsonValue(1)
Open,
@JsonValue(2)
Inactive,
@JsonValue(3)
Closed,
@JsonValue(4)
Default,
@JsonValue(5)
Delete,
@JsonValue(6)
ZeroRecord,
}
如果您确实想要默认值,您可以做的另一件事是使用@JsonKey
批注并将unknownEnumValue
属性设置为所需的默认值
class MyModel {
@JsonKey(unknownEnumValue: Classification.Default)
Classification classification;
}