gpt4 book ai didi

java - 如何序列化在类级别提供的值 JsonInclude.Include.NON_NULL

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:05 27 4
gpt4 key购买 nike

目前我的应用程序有一个类如下

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Employee {
Department department;
String firstName;
String lastName;
String address;
String phoneNumber;
}

我正在日志中捕获员工对象,并将该对象转换为 JSON。我能够将对象转换为 JSON,但空值不会进入 JSON。

我已经尝试过以下方法

 objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
generator.setCodec(objectMapper);
generator.writeObjectField(fieldName, argument);

但无法获取 JSON 中字段的 null 值。我如何获得它们?

最佳答案

您可以复制ObjectMapper并更改其一些选项,在这种情况下您可以忽略注释:

ObjectMapper mapperIgnoringAnnotations = mapper.copy()
.disable(MapperFeature.USE_ANNOTATIONS)
.setSerializationInclusion(JsonInclude.Include.ALWAYS)
.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY)

然后使用这个修改后的ObjectMapper来序列化该类,但使用其他类的标准序列化。如果 Employee 有许多您想要考虑的其他注释,那就不太方便了。

USE_ANNOTATIONS

关于java - 如何序列化在类级别提供的值 JsonInclude.Include.NON_NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com