枚举 java 内存_java - @JsonProperty在枚举中被忽略[重复] - 堆栈内存溢出

在使用Jackson库序列化包含@XmlEnum和@JsonProperty的Java枚举时遇到问题,枚举值未按预期的小写形式出现在JSON中。尝试移除java.xmlbind.annotation依赖并未解决问题。枚举定义了一个转换方法以根据传入字符串获取枚举值,并覆盖toString方法返回小写字符串。寻求解决方案。
摘要由CSDN通过智能技术生成

这个问题已经在这里有了答案:

我有一个简单的枚举,必须具有属性,确定和错误。 我试图通过使用@JsonProperty批注将其作为Json Object返回时,以小写形式返回该值。 首先,我认为是因为我将java.xmlbind.annotation与com.fasterxml混合在一起才是问题所在,但是删除java.xmlbind之后仍然无法正常工作。

使用此枚举的对象在json请求中始终显示OK或FAULT,而在请求XML时却没有OK和Fault。

使用Jackson 2.5.x

任何见解或建议将不胜感激。

import javax.xml.bind.annotation.XmlEnum;

import javax.xml.bind.annotation.XmlEnumValue;

import com.fasterxml.jackson.annotation.JsonProperty;

/**

*

*/

@XmlEnum

public enum RequestStatusType {

/**

* Generic server A-OK ;)

*/

@XmlEnumValue(value="ok")

@JsonProperty(value="ok")

OK,

/**

* Generic unknown server fault

*/

@XmlEnumValue(value="fault")

@JsonProperty(value="fault")

FAULT;

/**

* Returns a RequestStatusType based on the string passed in

* @param requestStatusType the requestStatusType to get

*/

public static RequestStatusType getRequestStatus (String requestStatusTypeStr) {

try {

return valueOf( requestStatusTypeStr.toUpperCase() );

} catch (Exception e) {

return null;

}

}

/* (non-Javadoc)

* @see java.lang.Enum#toString()

*/

@Override

public String toString() {

return super.toString().toLowerCase();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值