【问题标题】:How to customize swagger codegen to generate models that ignore null values如何自定义 swagger codegen 以生成忽略空值的模型
【发布时间】:2017-08-17 06:24:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: spring-boot jackson swagger swagger-codegen


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以在 application.yaml 中进行配置:

      spring:
         jackson:
            default-property-inclusion: NON_NULL
      

      【讨论】:

      • 啊酷,我正在使用 application.properties 但我可以使用:spring.jackson.default-property-inclusion 感谢您的提示
      • @LamineMbn,hhmmm 我不能只为特定的招摇定义在全球范围内这样做?我该怎么做?
      【解决方案3】:

      如果您没有 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>
      

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

      【讨论】:

        猜你喜欢
        • 2016-08-16
        • 2017-12-15
        • 2016-12-26
        • 1970-01-01
        • 2020-04-05
        • 2019-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多