将JSON反序列化为Java枚举

jim*_*jim 7 java android json

我在Android上的Java中有以下枚举,我希望能够将传入的JSON字符串/对象中的整数反序列化为此枚举类型.我一直在杰克逊和GSON上点击,但我正在使用的JSON.org软件包上没有任何内容.

有没有一种简单的方法可以做到这一点,还是我需要改变JSON解码器?谢谢.

public enum ValueEnum {

    ONE(1),
    TWO(2),
    THREE(3);

    private int value;

    private ValueEnum(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }   
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*nde 7

ValueEnum.values() 将返回ValueEnum []数组,然后您可以迭代数组并检查 Value

public static ValueEnum valueOf(int value) {
        ValueEnum[] valueEnums = ValueEnum.values();
        for (ValueEnum valueEnum : valueEnums) {
            if (valueEnum.getValue() == value)
            {
                return valueEnum;
            }
        }
        return DEFAULT;
    }
Run Code Online (Sandbox Code Playgroud)