gpt4 book ai didi

java - 在 Jackson 构造函数中使用自定义对象

转载 作者:行者123 更新时间:2023-12-02 09:22:20 25 4
gpt4 key购买 nike

有没有办法为 Jackson 反序列化器提供一个来自“外部”(例如 DI 容器)的默认值,该值将在反序列化对象时使用,在本例中为 tagRegistry?

  @JsonCreator
public ExtractionRule(@JsonProperty("id") String id,
TagRegistry tagRegistry) {
this.id = id;
this.tagRegistry = tagRegistry;
}

我找不到简单的方法来做到这一点。

最佳答案

你可以尝试@JacksonInject。将此成员添加到 ExtractionRule 类:

@JacksonInject("tagRegistry")
private TagRegistry tagRegistry;

并在反序列化之前将tagRegistry注入(inject)到ObjectMapper中:

 InjectableValues.Std injectableValues = new InjectableValues.Std();
injectableValues.addValue("tagRegistry", tagRegistry);

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setInjectableValues(injectableValues);

我还没有尝试在构造函数中使用它,不确定这是否有效。您可以在这里找到更多示例:

关于java - 在 Jackson 构造函数中使用自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605008/

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