在 Java 中使用枚举成员序列化对象?



如果我有一个类和枚举,如下所示:

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"}

最新更新