如果我有一个类和枚举,如下所示:
import java.io.Serializable;
public enum Color {
RED,
BLUE
}
public class Person implements Serializable {
String name;
int age;
Color favColor;
}
假设我构造它并将所有成员设置为一个值,这会正确序列化和反序列化吗?如果没有,如何更改enum Color
以允许序列化?
您使用的是哪个序列化库?
如果您使用的是杰克逊,则为以下行:
new ObjectMapper().writeValueAsString(Color.RED);
应生成字符串"RED"。
GSON 执行相同的操作 - 通过使用枚举的名称而不是序号值来序列化和反序列化:
System.out.println(gson.toJson(Color.RED));
应该打印
{"Color": "RED"}