2012-10-02 63 views
7

我在Android上的Java中有以下枚舉,我希望能夠將傳入的JSON字符串/對象中的整數反序列化爲此枚舉類型。我已經在Jackson和GSON上獲得了點擊率,但沒有任何關於我使用的JSON.org軟件包。反序列化JSON到Java枚舉

有沒有簡單的方法來做到這一點,或者我需要改變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; 
    } 
} 

回答

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

這是偉大的東西,謝謝。 – conor