java - ObjectMapper - 如何在 JSON 中发送空值

标签 java json null objectmapper

根据第三方 API 规范,如果不存在任何值,我需要使用 ObjectMapper 在 JSON 中发送空值,

预期结果:“可选”:null

如果可选值存在,则发送"optional": "value"

我在 Jackson – Working with Maps and nulls 中没有找到这样的选项

代码:

requestVO = new RequestVO(optional);
ObjectMapper mapper = new ObjectMapper();
String requestString = mapper.writeValueAsString(requestVO);

类:

public class RequestVO {
   String optional;
   public RequestVO(String optional) {
      this.optional = optional;
   }

public String getOptional() {
    return optional;
}

public void setOptional(String optional) {
    this.optional= optional;
}

最佳答案

@JsonInclude(JsonInclude.Include.USE_DEFAULTS) 注释添加到您的类中。

@JsonInclude(JsonInclude.Include.USE_DEFAULTS)
class RequestVO {
    String optional;

    public RequestVO(String optional) {
        this.optional = optional;
    }

    public String getOptional() {
        return optional;
    }

    public void setOptional(String optional) {
        this.optional = optional;
    }
}

示例:

RequestVO requestVO = new RequestVO(null);

ObjectMapper mapper = new ObjectMapper();
try {
    String requestString = mapper.writeValueAsString(requestVO);
    System.out.println(requestString);
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

输出:

{"optional":null}

具有值(value):

RequestVO requestVO = new RequestVO("test");

ObjectMapper mapper = new ObjectMapper();
try {
    String requestString = mapper.writeValueAsString(requestVO);
    System.out.println(requestString);
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

输出:

{"optional":"test"}

您可以在偶数属性上使用 @JsonInclude 注释。因此,通过这种方式,您可以序列化为 null 或在序列化时忽略某些属性。

关于java - ObjectMapper - 如何在 JSON 中发送空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801381/

相关文章:

java - 从 Java 应用程序访问 Windows API - JNI 或 JNA?

html - 换行\n 在 MongoDB Atlas 中不起作用

ios - Firebase 数据结构(最佳实践)

json - 如何在 Swift 中处理 json 空值

c++ - unique_ptr 到 nullptr 是不可复制的

java - 从 Java 运行外部命令时处理泄漏

java - 使用 java 从 usb token 读取 pfx 文件

java - 在 Java 中使用字符串替换方法时遇到问题

java - 将 Jackson2 与 Spring 4.0 (MVC + REST+ Hibernate) 结合使用

postgresql - 如何在 PostgreSQL sum() 中检测 NULL 行