使用Gson序列化和反序列化枚举

时间:2013-05-24 16:59:19

标签: java serialization enums deserialization gson

如何使用gson 2.2.4序列化和反序列化这样的简单枚举?

public enum Color {

    RED, BLUE, YELLOW;
}

3 个答案:

答案 0 :(得分:168)

你可以试试这个。

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

}

答案 1 :(得分:27)

根据Gson API documentation,Gson提供Enum的默认序列化/反序列化,因此基本上应使用标准toJsonfromJson方法对其进行序列化和反序列化,如同任何其他类型。

答案 2 :(得分:1)

这也很好,不知道从哪个版本的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);
    }
}