使用 Gson 对枚举进行序列化和反序列化

如何用 gson2.2.4序列化和反序列化这样的简单枚举?

public enum Color {


RED, BLUE, YELLOW;
}
71427 次浏览

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

你可以试试这个。

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


}

这也可以很好地工作,虽然不知道从哪个版本的 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);
}
}