将JSON反序列化为Java枚举类型

7
我在Android上使用Java编写了以下枚举,我想将传入的JSON字符串/对象中的整数反序列化为这种枚举类型。我在Jackson和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;
    }   
}
1个回答

8

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接