如何使用 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);
我正在使用 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);