显示空属性json响应spring数据休息吗?

时间:2018-07-19 11:17:13

标签: java json spring rest spring-data-rest

想象一下,我有一个这样的实体。

public class Person{
  Long Id,
  String name,
  String city,
  Long age

  //getters, setters, constructor
}

当我创建存储库并使用GET请求输出的city条目为null时,以下是我的json响应。

{
  "name": "jon",
  "age": 34
}

但是我想要这个。

{
  "name": "jon",
  "city": null,
  "age": 34
}

即显示空属性。

最简单的解决方法是什么?

2 个答案:

答案 0 :(得分:3)

确保您的ObjectMapper中没有 以下配置:

mapper.setSerializationInclusion(Include.NON_NULL);

如果有,请将其删除或更改为Include.ALWAYS


还要检查您的application.properties。如果您使用的是Spring Boot 1.3,则通过spring.jackson.serialization-inclusion属性配置序列化包含项。

Jackson 2.7和Spring Boot 1.4使用名为spring.jackson.default-property-inclusion的属性。

确保此类属性的值为non_null


另一种方法是,按如下所示注释您的班级:

@JsonInclude(Include.ALWAYS)
public class Person {
    ...
}

答案 1 :(得分:1)

我认为您应该检查JSON注释JsonInclude.Include并将其设置为ALWAYS: https://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonInclude.Include.html