gpt4 book ai didi

java - Jackson 对象上的 setter 重载

转载 作者:行者123 更新时间:2023-12-02 10:39:40 24 4
gpt4 key购买 nike

我不确定这是否可能,但我希望在 Jackson 反序列化对象上有一个重载的 setter。因此,根据该字段中的对象,它会以不同的方式反序列化。

示例

public class Thing {
private MyObject1 object;

public MyObject1 getObject() {
return object;

public void setObject(MyObject1 object) {
this.object = object;
}

public void setObject(MyObject2 object) {
this.object = translate1To2(object);
}
}

如果这是不可能的,有人会为我提供替代方法吗?我担心的是,在只有一个 setter 的简单情况下,Jackson 不必选择将 JSON 反序列化为哪个对象,因此不确定它是否可以。

更新:上面给出了 com.fasterxml.jackson.databind.JsonMappingException:属性“object”的 setter 定义冲突

最佳答案

我认为最好的方法是添加自定义反序列化类

@JsonDeserialize(using = ThingDeserializer.class)
public class Thing {
...
}

这里是反序列化的例子 https://www.baeldung.com/jackson-deserialization

然后,您的 bean 将永远干净,并且您可以根据需要创建自己的 JSON

关于java - Jackson 对象上的 setter 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53019634/

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