Gson JSON反序列化不适用于枚举

时间:2018-08-24 12:28:50

标签: java android json gson deserialization

我有这个枚举

    public enum TornadoType {
    @SerializedName("RADAR INDICATED")
    RADAR_INDICATED("#ef8540", "RADAR INDICATED"),

    @SerializedName("OBSERVED")
    OBSERVED("#ff0000", "OBSERVED"),

    @SerializedName("POSSIBLE")
    POSSIBLE("#fdf151", "POSSIBLE");

    private final String color;

    @Getter
    private final String type;

    public int getColor() {
        return Color.parseColor(color);
    }

    TornadoType(String color, String name) {
        this.color = color;
        this.type = name;
    }
}

我正在尝试反序列化这样的枚举值

TornadoType tornadoType = new Gson().fromJson("RADAR INDICATED", TornadoType.class);

但是我一直在获得tornadoType的空值。我也在下面尝试过

    java.lang.reflect.Type type = new TypeToken<TornadoType>() {
    }.getType();
    TornadoType tornadoType = new Gson().fromJson("RADAR INDICATED", type);
    return tornadoType.getColor();

这似乎也不适合我。我正在Android上使用gson 2.8版。每个Google搜索都说Enum反序列化是开箱即用的,它应该可以正常工作。我在做什么错了?

0 个答案:

没有答案