2016-04-18 5 views
1

enumをその値の1つとして持つJSON文字列を逆シリアル化しようとしています。jsonでenumをデシリアライズしようとするとインデックス値が法定インデックス範囲外になる

ENUM STATUS 
{ 
    ACTIVE(0), INACTIVE(1), EXPIRED(3)// Note here that 2 is not used due to some reasons 
} 

int status = 0; 
public static Status getNameByValue(final int value) { 
     for (final Status s: Status.values()) { 
      if (s.status== value) { 
       return s; 
      } 
     } 
     return null; 
    } 
} 

私は次のことを持っている残り

{"name":"Raj","status": 3} 

を通じて次のようにその値の一つとしてこれを持っているJSON文字列を読み込むしようとしています次のように列挙型の構造があります例外。

number value (3): index value outside legal index range [0..2] 
at [Source: [email protected]; line: 1, column: 28] (through reference chain: 

親切デフォルトでは、ほとんどのフレームワークはその序数で列挙型をデシリアライズ/シリアライズするになります。この点について

答えて

0

で私を助けて。

e.xの場合、デシリアライザにあなたの列挙型の理解方法を伝える必要があります。 JSONとのマッピングにJacksonを使用している場合は、answerを参照できますが、この回答はシリアル化のためのものですが、同じ方法でデシリアライズすることもできます。

関連する問題