1

我有一个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 中的这些字段?此外,是否有某种方式,在序列化时,我也只序列化那些在序列化时具有非空值的对象属性。

4

1 回答 1

4

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

@JsonIgnoreProperties(ignoreUnknown = true)

或与ObjectMapper

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

仅适用于非空:

@JsonInclude(Include.NON_NULL)

或杰克逊ObjectMapper

objectMapper.setSerializationInclusion(Include.NON_NULL);
于 2013-08-06T15:11:05.110 回答