【发布时间】:2013-05-20 08:33:26
【问题描述】:
如何使用 gson 2.2.4 序列化和反序列化这样的简单枚举?
public enum Color {
RED, BLUE, YELLOW;
}
【问题讨论】:
标签: java serialization enums deserialization gson
如何使用 gson 2.2.4 序列化和反序列化这样的简单枚举?
public enum Color {
RED, BLUE, YELLOW;
}
【问题讨论】:
标签: java serialization enums deserialization gson
根据Gson API documentation,Gson 提供了Enum 的默认序列化/反序列化,因此基本上应该使用标准的toJson 和fromJson 方法对其进行序列化和反序列化,与任何其他类型一样。
【讨论】:
@SerializedName。
你可以试试这个。
import com.google.gson.annotations.SerializedName;
public enum Color {
@SerializedName("0")
RED (0),
@SerializedName("1")
BLUE (1),
@SerializedName("2")
YELLOW (2);
private final int value;
public int getValue() {
return value;
}
private Color(int value) {
this.value = value;
}
}
【讨论】:
Unknown?例如,上面的枚举Color 应该有一个Unknown 字段,它代表的值不是0、1 或2。
这也很好用,但不知道来自哪个版本的 GSON:
public enum OrderLineTimeRegistrationStatus {
None(0), Started(1), Paused(2);
private int value;
private OrderLineTimeRegistrationStatus(int value)
{
this.value=value;
}
public int getValue()
{
return(value);
}
}
【讨论】: