gpt4 book ai didi

java - 使用自定义 getter 为我不拥有的类反序列化 JSON

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

我正在尝试反序列化我不拥有的类的对象。该类具有 id_address_name_ 等属性名称,但其 getter 为 getId() getAddress() getName() 等

当我尝试使用 Jackson 反序列化 JSON 时,我得到

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "id_", not marked as ignorable

看起来发生这种情况是因为 Jackson 正在寻找 getId_() 而不是 getId()。由于我不拥有底层类,因此我无法使用 Jackson 的注释将属性映射到自定义 json 字段。

如何使用对象属性到其 getter 方法的自定义映射进行反序列化?

最佳答案

您可以尝试自定义解串器。

查看:https://www.baeldung.com/jackson-deserialization

这样您就可以为该类注册一个反序列化器。

但是,当类发生变化时,您仍然需要对其进行编辑。

您可以尝试的另一件事:

mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);

这将使映射器能够完全访问私有(private)成员。

关于java - 使用自定义 getter 为我不拥有的类反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56677514/

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