72

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

public enum Color {

    RED, BLUE, YELLOW;
}
4

3 回答 3

204

你可以试试这个。

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

}
于 2014-07-07T23:01:28.590 回答
31

根据Gson API 文档,Gson 提供了默认的序列化/反序列化Enum,因此基本上应该使用标准toJsonfromJson方法对其进行序列化和反序列化,就像任何其他类型一样。

于 2013-05-25T13:04:05.287 回答
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);
    }
}
于 2014-12-12T16:10:31.913 回答