将需要反序列化的json字段限制为java对象的字段

时间:2013-08-06 15:06:09

标签: java json spring rest

我有一个Json:

{ 
   "a1":"a1Value",
   "a2":"a2Value",
   "a3":"a3Value",
   "a4":"a4Value",
   "a5":"a5Value" 
}

Java类是:

class Response {
    private String a1;
    private String a2;
    private String a3;

    //public getters and setters
}

现在我只需要将Json中的3个字段反序列化到对象的3个字段中,我使用的是Spring 3.2.2 MVC,用于REST支持(rest模板:getForEntity()),并在此过程中收到错误,我怎么能忽略json中的这些字段?此外,还有一些方法,在序列化时,我只序列化那些在序列化时具有非空值的对象属性。

1 个答案:

答案 0 :(得分:4)

在类级别添加此注释以忽略未知属性:

@JsonIgnoreProperties(ignoreUnknown = true)

ObjectMapper

objectMapper.configure
      (DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

仅限非null:

@JsonInclude(Include.NON_NULL)

或杰克逊ObjectMapper

objectMapper.setSerializationInclusion(Include.NON_NULL);