我正在使用JAVA 1.6和Jackson 1.9.9我有一个枚举
public enum Event {
FORGOT_PASSWORD("forgot password");
private final String value;
private Event(final String description) {
this.value = description;
}
@JsonValue
final String value() {
return this.value;
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个@JsonValue,这似乎完成了将对象序列化为:
{"event":"forgot password"}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试反序列化时,我得到了一个
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.globalrelay.gas.appsjson.authportal.Event from String value 'forgot password': value not one of declared Enum instance names
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
Jackson 1.6.2 REST Web服务/ Apache Wink
如何对枚举字段进行注释以便杰克逊对其进行反序列化?
public enum BooleanField
{
BOOLEAN_TRUE { public String value() { return "1";} },
BOOLEAN_FALSE { public String value() { return "0";} },
Run Code Online (Sandbox Code Playgroud)
BooleanField locked;
public BooleanField getLocked() {return locked;}
Run Code Online (Sandbox Code Playgroud)
杰克逊文档声明它可以通过@JsonValue/ 执行此操作@JsonCreator但不提供任何示例(如何有用!).我敢肯定他们只是不想让太多人使用他们的框架,所以他们保守这个秘密.
有人愿意溢出(java)bean吗?
我在Android上的Java中有以下枚举,我希望能够将传入的JSON字符串/对象中的整数反序列化为此枚举类型.我一直在杰克逊和GSON上点击,但我正在使用的JSON.org软件包上没有任何内容.
有没有一种简单的方法可以做到这一点,还是我需要改变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;
}
}
Run Code Online (Sandbox Code Playgroud)