gpt4 book ai didi

java - Jackson Include.NOT_NULL 字段不起作用

转载 作者:行者123 更新时间:2023-12-02 11:31:53 25 4
gpt4 key购买 nike

使用 JsonInclude(content=Include.NON_NULL) (或实际上任何其他 JsonInclude 选项)似乎对我的对象的序列化没有影响。考虑这个测试:

public class JsonTest {
@Data
@JsonInclude(content=Include.ALWAYS)
static class TestObj {
String fieldVisible = "a";
String fieldVisibleNull = null;
@JsonInclude(content=Include.NON_NULL)
String fieldInvisible = null;
}

public static void main(String[] args) throws JsonProcessingException {

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerFor(TestObj.class).writeValueAsString(new TestObj());
if (json.contains("fieldInvisible")) {
System.err.println(json);
throw new RuntimeException("null field written even though it shouldn't be");
}
}
}

结果是:

{"fieldVisible":"a","fieldVisibleNull":null,"fieldInvisible":null}
Exception in thread "main" java.lang.RuntimeException: null field written even though it shouldn't be
at my.package.JsonTest.main(JsonTest.java:57)

我错过了什么?我不明白什么?

最佳答案

使用

@JsonInclude(Include.NON_NULL)

而不是

@JsonInclude(content=Include.NON_NULL)

有效。谢谢@Aaron。

关于java - Jackson Include.NOT_NULL 字段不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49235946/

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