我有一个具有这些属性的Project类
private String id;
private String name;
private ProjectStatus status;
Projectstatus是如下所示的枚举:
public enum ProjectStatus {
I,
A,
C,
OPEN,
CLOSED
}
我正在调用一个远程rest服务,该服务用json响应,以获取有关该项目的信息。
我遇到的问题是,远程服务负载中的状态为“Open”,这会在尝试创建项目对象时引发问题,因为我的ProjectStatus枚举中的状态为Open(大写)。
我可以像这样创建Projectstatus以匹配来自服务的响应:
public enum ProjectStatus {
I,
A,
C,
Open,
Closed
}
然而,我会违反命名枚举的标准。
我也尝试过做以下事情,但没有成功
public enum ProjectStatus {
I,
A,
C,
OPEN("Open"),
CLOSED("Closed")
}
去这里的正确方法是什么?
我让它像这样工作
public enum ProjectStatus {
I("I"),
A("A"),
C("C"),
OPEN("Open"),
CLOSED("Closed");
private String value;
ProjectStatus(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
@JsonCreator
public static ProjectStatus fromString(String value) {
return ProjectStatus.valueOf(value.toUpperCase());
}
}
简单的解决方案是将Value定义为将通过@JsonValue
注释进行序列化的内容。沿着这条线的东西
public enum MySuperEnum {
VALUE_1("value1", "Value 1 Desc"),
VALUE_2("valu2", "Value 2 Desc"),
VALUE_3("value3", "Value 3 Desc")
;
private final String code;
private final String desc;
MySuperEnum(String code, String desc){
this.code = code;
this.desc = desc;
}
@JsonValue
public String getCode() {
return code;
}
public String getDesc(){
return desc;
}
}
问题内容: 我正在尝试并且未能对Jackson 2.5.4的枚举进行反序列化,并且我不太清楚我的情况。我的输入字符串是驼峰式的,我想简单地映射到标准的Enum约定。 我也尝试了吸气剂,但没有成功,这是我在其他地方看到的一种选择。他们都炸毁了: 我究竟做错了什么? 问题答案: 编辑: 从Jackson 2.6开始,您可以在枚举的每个元素上使用以指定其序列化/反序列化值(请参见此处): (此答案的其余
问题内容: 我们使用Jackson 1.9.1对与Java对象之间的JSON请求响应字符串进行序列化和反序列化。原始Java类型,集合类型和自定义对象都可以(反)序列化而不会出现问题。但是,尝试将JSON字符串反序列化为Java枚举时遇到问题。JSON字符串的序列化方式如下: wt的Java类型如下所示: 我在SO上提到了this,this和this,并提出了重量单位的枚举,如下所示: 问题是,每
问题内容: 我如何使用gson 2.2.4序列化和反序列化一个简单的枚举? 问题答案: 根据 GsonAPI文档 ,Gson提供了的默认序列化/反序列化,因此基本上,应使用标准和方法(与其他类型一样)对序列化和反序列化。
问题内容: 我在Android上的Java中具有以下枚举,并且我希望能够将传入的JSON字符串/对象中的整数反序列化为此Enum类型。我一直在Jackson和GSON上受到欢迎,但在我正在使用的JSON.org包上却什么也没有。 有没有简单的方法可以做到这一点,或者我需要更改JSON解码器?谢谢。 问题答案: 将返回您的数组,然后可以遍历数组并检查
我在Android上的Java中有以下枚举,我希望能够将传入的JSON字符串/对象中的整数反序列化为该枚举类型。我在杰克逊和GSON上得到了点击,但在json.org包上没有,我正在使用。 是否有一个简单的方法来做到这一点,或者我需要改变JSON解码器?谢了。
我正在尝试使用jackson-DataBind Objectmapper反序列化一个JSON字符串,其中包含一组枚举属性。当JSON中出现未在枚举中定义的未知属性时,就会发生这种情况。请在下面找到我正在使用的对象映射器配置。 但是,反序列化(ObjectMapper.ReadValue(jsonText,.class);)抛出此错误。“test”是要反序列化的JSON字符串中的未知属性。 Com.