小编mon*_*r75的帖子

用JSON序列化/反序列化Dart新枚举的最佳方法是什么?

我想利用Dart的新(实验性)enum功能,而不是使用静态const字符串堆栈,但是enum使用JSON 序列化/反序列化变量的最佳方法是什么?我已经通过这种方式使其工作,但是肯定有更好的解决方案:

enum Status {
  none,
  running,
  stopped,
  paused
}

Status status1 = Status.stopped;
Status status2 = Status.none;

String json = JSON.encode(status1.index);
print(json);   // prints 2

int index = JSON.decode(json);
status2 = Status.values[index];
print(status2);  // prints Status.stopped
Run Code Online (Sandbox Code Playgroud)

如果使用索引进行序列化,则可能会被锁定为永远使枚举始终保持相同的顺序,因此我更喜欢使用某种String形式。有人知道了吗?

enums json dart

5
推荐指数
3
解决办法
2315
查看次数

标签 统计

dart ×1

enums ×1

json ×1