工具:
Weblogic 12c
Jersey 2.21.1
杰克逊2
public class Profile implements Serializable
{
private List<Status> orderStatus;
public void setOrderStatus(List<Status> orderStatus)
{
this.orderStatus = orderStatus;
}
public void getOrderStatus()
{
return orderStatus;
}
我有一个如上所述的简单POJO类。
我在使用Jersey 2 with Jackson
时遇到以下问题。
1)序列化Profile类时,JSON创建为:{"OrderStatus":[{}]}
2)因此生成的密钥是OrderStatus
而不是orderStatus
3)当此JSON被反序列化时,它将引发错误-
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "OrderStatus" since it cannot
find field with OrderStatus but has field as orderStatus
I have tried adding :
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY,getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
希望序列化将仅使用字段作为键(而不使用属性),并且JSON将生成为{"orderStatus":[{}]} .
但是它不起作用并且抛出相同的错误。 有什么方法可以将键作为字段而不是属性序列化POJO。
有人可以在这里帮忙吗?
答案 0 :(得分:0)
如果要确保orderStatus
是名称,请使用特定的JsonProperty:
@JsonProperty("orderStatus")
public void getOrderStatus()
@JsonProperty(还指示要包含属性)用于指示外部属性名称