如何在不指定@JsonView该 Java 对象的每个字段的情况下将 Java 对象的所有字段包含到 JSON 响应(视图)中?
编辑:我需要在不使用另一个外部库的情况下实现这一点。
这是一个常见的问题@JsonView。注释仅适用于方法和属性,因此您不能只注释整个类并包含所有属性。
我将假设您在 Spring 中使用它。这种行为是由于 Spring 选择在 ObjectMapper 中默认禁用包含所有属性的事实。因此,只会@JsonView包含带注释的属性,而不会包含其他属性。
您可以通过设置MapperFeature.DEFAULT_VIEW_INCLUSION为来更改此设置true。像这样:
普通爪哇:
mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
Run Code Online (Sandbox Code Playgroud)
Spring Boot(将此添加到 application.properties):
spring.jackson.mapper.default-view-inclusion=true
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有属性都将在 JSON 序列化期间包含在内,并且您可以使用@JsonInclude和其他 Jackson 注释来控制包含和排除。