gpt4 book ai didi

java - Jackson - 使用 Builder 进行反序列化,无需注释

转载 作者:行者123 更新时间:2023-12-02 02:32:19 30 4
gpt4 key购买 nike

是否可以使用 Jackson 反序列化仅具有所有参数构造函数和生成器的值类(最终的,无 setter )?我无法使用 JsonDeserializeJsonPOJOBuilder 因为我试图反序列化客户端库中定义的模型,所以我无法添加注释。我可以指定构建器使用其他方式吗?

最佳答案

您可以尝试使用 MixIn。

我为您的用例创建了一个示例:

原始类:

final class Sample {

final int id;

Sample(int id) {
this.id = id;
}
}

MixIn(提供具有相同参数的无参数构造函数):

@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
abstract class SampleMixin {
@JsonCreator
public SampleMixin(@JsonProperty("id") int id) {
}
}

反序列化:

ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(Sample.class, SampleMixin.class);
Sample sample = mapper.readValue(json, Sample.class);

关于java - Jackson - 使用 Builder 进行反序列化,无需注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46903678/

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