我正在使用Jersey和Jackson構建Web應用程序。通過使用類似於下面的代碼片段的邏輯來返回響應。 (不相關的部分都將被刪除)避免以特定值響應JSON字段
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"}
你是什麼意思隱藏?你想完成刪除它或只是將其設置爲私人? –
@JonathanPortorreal完全從JSON響應中刪除字段 – choasia
我想不出任何聰明的方法,但是您可以創建另一個沒有「分數」字段的類,並在必要時使用該字段。 –