我想利用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形式。有人知道了吗?