我正在使用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字段。
我调查了诸如herehere之类的问题,但无法找到可用的答案。

例:
当约翰的得分为1时:{"name": "John", "score": 1}
当约翰的得分为0时:{"name": "John"}

最佳答案

通过@Henrik使用答案,将注释更改为JsonInclude.Include.NON_DEFAULT。希望这就是你所期望的

关于java - 避免使用特定值响应JSON字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42105843/

10-12 00:32
查看更多