我有一个 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 template : getForEntity()) ,并在此过程中出错,我怎样才能忽略 json 中的这些字段?另外,有没有什么办法,在序列化时,我也只序列化那些在序列化时具有非空值的对象属性。
最佳答案
在类级别添加此注释以忽略未知属性:
@JsonIgnoreProperties(ignoreUnknown = true)
或使用ObjectMapper
:
objectMapper.configure
(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
仅对于非空:
@JsonInclude(Include.NON_NULL)
或者对于 Jackson ObjectMapper
:
objectMapper.setSerializationInclusion(Include.NON_NULL);
关于java - 限制需要反序列化的json字段为java对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18083899/