2012-10-02 33 views
7

Tôi có liệt kê sau đây trong Java trên Android và tôi muốn có thể deserialize một số nguyên trong một chuỗi JSON/đối tượng vào loại Enum này. Tôi đã nhận được lượt truy cập vào Jackson và GSON nhưng không có gì trên gói JSON.org mà tôi đang sử dụng.Deserialize JSON to Java enum

Có cách nào dễ dàng để thực hiện việc này hay tôi cần phải thay đổi bộ giải mã JSON? Cảm ơn.

public enum ValueEnum { 

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

    private int value; 

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

    public int getValue() { 
     return value; 
    } 
} 

Trả lời

7

ValueEnum.values() sẽ đưa bạn trở mảng của ValueEnum [] sau đó bạn có thể lặp qua mảng và kiểm tra Value

public static ValueEnum valueOf(int value) { 
     ValueEnum[] valueEnums = ValueEnum.values(); 
     for (ValueEnum valueEnum : valueEnums) { 
      if (valueEnum.getValue() == value) 
      { 
       return valueEnum; 
      } 
     } 
     return DEFAULT; 
    } 
+0

Đó là tuyệt vời thứ, Cảm ơn bạn. – conor