Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Spring + JacksonでJSONにするとenumはname()の値になる

enumはname()の値がJSONになるけど、enumの定義から考えるとtoString()じゃないのかなと思ったら同じことを考えてJIRAに登録してる人がいた。

[#JACKSON-212] use toString() instead of name() for enum type - jira.codehaus.org

けど、まだfixされてないし、そもそもそういう仕様になるかもわからない。

org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector

@Override
public String findEnumValue(Enum value)

{ return value.toString(); }
toString() will call name() default in java.lang.Enum,and User can override toString and needn't to override JacksonAnnotationIntrospector