JSON序列化到Java枚举 [英] Deserialize JSON to Java enum
本文介绍了JSON序列化到Java枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Java的Android设备上的下列枚举,我想能够反序列化的传入JSON字符串/对象整数到这个枚举类型。我已经越来越对JSON.org包,我使用的杰克逊和GSON但没有命中。
有没有一种简单的方法来做到这一点还是需要改变JSON德codeR?谢谢你。
公共枚举ValueEnum { 一(1),
二(2),
三(3); 私人int值; 私人ValueEnum(int值){
THIS.VALUE =价值;
} 公众诠释的getValue(){
返回值;
}
}
解决方案
ValueEnum.values()
将返回ValueEnum的[]数组,那么你可以遍历数组,检查值
公共静态ValueEnum的valueOf(int值){
ValueEnum [] = valueEnums ValueEnum.values();
对于(ValueEnum valueEnum:valueEnums){
如果(valueEnum.getValue()==值)
{
返回valueEnum;
}
}
返回默认值;
}
I have the following enumeration in Java on Android and I would like to be able to deserialize an integer in an incoming JSON string/object into this Enum type. I have been getting hits on Jackson and GSON but nothing on the JSON.org package, which I am using.
Is there an easy way to do this or do I need to alter the JSON decoder? Thanks.
public enum ValueEnum {
ONE(1),
TWO(2),
THREE(3);
private int value;
private ValueEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
解决方案
ValueEnum.values()
will return you array of ValueEnum[] then you can iterate over array and check for Value
public static ValueEnum valueOf(int value) {
ValueEnum[] valueEnums = ValueEnum.values();
for (ValueEnum valueEnum : valueEnums) {
if (valueEnum.getValue() == value)
{
return valueEnum;
}
}
return DEFAULT;
}
这篇关于JSON序列化到Java枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文