2

我正在使用 swagger-codgen 为我的 spring boot 应用程序生成 java 模型类并将它们序列化为 json。默认情况下,这些模型都将包含具有空值的可选属性。

我想为 spring 配置 swagger-codgen 以在所有类之上包含此注释:@JsonInclude(Include.NON_NULL)以便空值属性不包含在序列化的 json 中。

我怎样才能做到这一点?有配置选项还是我必须手动扩展spring codegen?

4

3 回答 3

7

您可以在您的application.yaml

spring:
   jackson:
      default-property-inclusion: NON_NULL
于 2018-06-21T09:13:25.550 回答
4

实现这一点的一种方法是通过添加注释来修改 Java Spring 的pojo 模板。该模板用于生成模型。

于 2017-03-24T18:44:31.937 回答
0

如果您没有 application.yaml 或 application.properties 但有 spring xml 配置,那么添加它也可以解决问题。
这不会将注释放入文件中,但具有相同的效果。

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper">
                <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                    <property name="serializationInclusion" value="NON_NULL"/>
                </bean>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

请注意,这应该添加到使用您生成的代码的应用程序中,这不一定是生成它的那个。

于 2018-09-26T13:47:49.000 回答