Java POJO JSON 忽略默认字段注释

问题描述 投票:0回答:1

如何区分实际设置为 int 值 0 和默认设置为 0 的 JSON 字段? 我想查看 json 字段的实际值:'0', 但当它根本没有设置时忽略它(但最终仍为 0)。

我目前正在我的 int 字段变量上测试这个:

@JsonInclude(JsonInclude.Include.NON_DEFAULT)

但它忽略了我的 json 中该字段的每个 0 值。

java json spring annotations
1个回答
1
投票

Java 中没有办法检查 int 值是否默认设置为“0”。相反,您可以尝试以下选项之一。

  1. 使用 Integer - 当使用 Integer 代替 int 时,您可以轻松区分它。如果未设置值,则 Integer 将为 null。 (我更喜欢这种方式)
  2. 使用int并使用布尔字段来标记某个值是否设置为int。您可以在 int 字段的 setter 方法中将布尔值设置为“true”。通过查看布尔值,您可以区分值是否设置为 int 字段。
private int foo;

private boolean isFooSet;

public void setFoo(int value) {
    this.foo = value;
    this.isFooSet = true;
}
© www.soinside.com 2019 - 2024. All rights reserved.