我正在使用Jersey和Jackson来构建Web应用程序。响应将通过使用类似于以下代码片段的逻辑返回。 (不相关的部分将被删除)
public Response toResponse() {
String name = // some methods to get name
Integer score = // some methods to get score
final MyDTO dto = new MyDTO(name, score);
return Response
.ok()
.encoding(StandardCharsets.UTF_8.toString())
.type(MediaType.APPLICATION_JSON_TYPE)
.entity(dto)
.build();
}
和
MyDTO
类:@XmlRootElement
public final class MyDTO {
@NotNull final private String name;
@NotNull final private Integer score;
// constructor, getters, setters...
}
而且我只能在MyDTO中使用非空值。
我想实现的是当
score
等于0时在JSON响应中隐藏score
字段。我调查了诸如here和here之类的问题,但无法找到可用的答案。
例:
当约翰的得分为1时:
{"name": "John", "score": 1}
当约翰的得分为0时:
{"name": "John"}
最佳答案
通过@Henrik使用答案,将注释更改为JsonInclude.Include.NON_DEFAULT。希望这就是你所期望的
关于java - 避免使用特定值响应JSON字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42105843/