假设我有这样的json,我想将它反序列化为一个名为SubscriberProfile的对象。
{ "field1": "value1", "field2": "value2", "field3": "value3" }
当我使用以下代码时,它没有任何问题,
objectMapper.readValue(json,SubscriberProfile.class);
但是如果json中缺少field2(field1和field2可能会丢失),我想要objectmapper throw和exception。
所以这样的json应该抛出异常
{ "field1": "value1", "field3": "value3" }
我尝试使用@JsonProperty(required=true)
注释,但仅在序列化时才有效。
你知道我怎么能解决这个问题?
提前致谢
答案 0 :(得分:3)
您需要删除bean类的默认构造函数。这是杰克逊在没有你需要的领域的情况下创造一个豆子的原因。例如(从here修改):
public class NonDefaultBean {
private final String myRequired;
private String myNotRequired;
@JsonCreator
public NonDefaultBean(@JsonProperty("myRequired") String myRequired) {
this.myRequired = myRequired;
}
public void setMyNotRequired(String myNotRequired) {
this.myNotRequired = myNotRequired;
}
}