gpt4 book ai didi

java - 如何告诉 Jackson 反序列化非缺失字段上的更新值(包括嵌套字段)

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

我有带有一些值的 Foo 类,并使用相同的 Foo 对象进行反序列化。

public class Foo {
public String name;
public Integer age;
public Goo g;
}
static public class Goo {

public Long id;
public Integer level;
}

assume // String jsonStr = {"name" : "alan"; "g": {"level":6}}
Foo f = new Foo();
f.name = "dummy";
f.age = 99;
//asssume f.g.id = 3
objectMapper.readerForUpdating(f).readValue(jsonStr);
// f object toString
output {"name" : "alan"; "age" : 99, "g":{"id": null, "level":6}}

如何配置,使其不会更新在缺失字段上具有值的字段上的任何值或默认值?

像下面的输出一样

output {"name" : "alan"; "age" : 99, "g":{"id": 3, "level":6}}

最佳答案

您可以手动配置映射器或注释 Foo 类。

手动:

objectMapper.setSerializationInclusion(Include.NON_NULL);

或者在类上(甚至在属性上)添加注释:

@JsonInclude(Include.NON_NULL)
public class Foo {
public String name;
public Integer age;
}

编辑:如果您想忽略空值,这会回答问题,但正如对该问题的评论所说,您的代码中可能有错误。显然,您在阅读之前重新分配变量

关于java - 如何告诉 Jackson 反序列化非缺失字段上的更新值(包括嵌套字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348672/

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