泽西岛 2 与杰克逊序列化问题



Tools :

Weblogic 12c

泽西岛 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。

有人可以在这里帮忙吗?

如果要确保名称orderStatus请使用特定的 JsonProperty :

@JsonProperty("orderStatus")
public void getOrderStatus()

@JsonProperty(也指示要包含属性(用于指示外部属性名称

最新更新