如何使用 dropwizard 仅使用设置字段发送响应

How to send response only with set fields using dropwizard

我正在使用 dropwizard,当我发送响应时,Jackson 将我的响应 class 转换为响应 JSON。

问题是 POJO class 的一个字段并不总是设置,如果未设置,它会在响应中显示空值 JSON。

someField:null

但是我只想显示这个字段,以防万一它被设置了。 我应该怎么办?也许有一些注释。

因此,正如我发现的那样,jackson 具有允许您排除字段的注释。实际上它不排除字段,但在您可以选择的某些情况下包括它。 答案是:@JsonInclude(Include.NON_NULL)。它仅在不为 null 的情况下包含此字段。

是的,有办法做到这一点。在 class 级别的 POJO 中添加

@JsonInclude(Include.NON_NULL) //or Include.NON_EMPTY
public static class Request {
  // ...
}

您也可以使用

在全球范围内执行此操作
mapper.setSerializationInclusion(Include.NON_NULL);

引用如下:http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonInclude.Include.html