cjm*_*ues 5 dart json-serialization
我是飞镖开发的新手...
我不知道如何使用带有枚举类型的 Json_serializable 包。我的数据库将枚举值作为整数,但看起来 JSON_Serializable 希望该值是枚举名称的字符串表示形式.. IE:
枚举分类 { 无、打开、不活动、关闭、默认、删除、零记录}
数据库将分类作为整数值(4:这是默认值)
从 JSON 加载时出现异常
例外:无效参数:4不是支持的值之一:None、Open、Inactive、Closed、Default、Delete、ZeroRecord
如何强制 JSON_Serializable 将 4 视为“默认”?
can*_*a20 10
基本上你有两个选择。(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,
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想要一个默认值,你可以做的另一件事是使用@JsonKey注释并将unknownEnumValue属性设置为所需的默认值
class MyModel {
@JsonKey(unknownEnumValue: Classification.Default)
Classification classification;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |