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

标签 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 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/

相关文章:

java - JCIFS API Java,从内部存储复制文件

ios - 在 JSON 中,我在 "title"中获取以下格式的数据,如何获取实际数据?

json - Jinja2 - 列表中的缩进和递归循环

java - Spring 中的内容类型和@ResponseBody

java - Spring数据抛出 'No aliases found in result tuple'

java - Oracle Weblogic : The root element web-app is missing in the descriptor file

java - 如何在运行时更改Android应用程序小部件的大小?

java - 在 Android 4.4 Kitkat 中查找 SD 卡路径

iphone - Http 发布请求

java - 将动态应用程序部署到 Eclipse 上的 Tomcat 服务器后,Spring Web REST API 的 HTTP 状态 404