gpt4 book ai didi

java - Jackson JSON 中@JsonProperty 映射的辅助方法

转载 作者:行者123 更新时间:2023-12-04 06:05:44 25 4
gpt4 key购买 nike

Jackson 是否有一个辅助方法来返回给定 bean 字段名称的 @JsonProperty 注释值(即 JSON 属性键)?

上下文:

我正在使用 Jackson 将客户端提供的 JSON 转换为 Bean,然后使用 JSR-303 验证 bean。当验证失败时,我需要向客户端报告一个有意义的错误消息。验证对象引用 bean 属性;错误消息应引用 JSON 属性。因此需要从一个映射到另一个。

最佳答案

您可以通过 BeanDescription 获得相当多的信息对象,尽管获得一个非常棘手(主要是因为它主要是为 jackson 的内部使用而设计的)。
但这被一些 Jackson 扩展模块使用,因此它是受支持的用例。所以:

ObjectMapper mapper = ...;
JavaType type = mapper.constructType(PojoType.class); // JavaType to allow for generics
// use SerializationConfig to know setup for serialization, DeserializationConfig for deser
BeanDescription desc = mapper.getSerializationConfig().introspect(type);

您也可以安全地将其上载到 BasicBeanDescription如有必要。

这使您可以访问大量信息;逻辑属性列表(通过它您可以找到代表它的 getter/setter/field/ctor-argument)、完全解析的方法(带有注释)等。所以希望这就足够了。
逻辑属性很有用,因为它们既包含外部名称(一个来自 JSON 的预期),也包含从 getter/setter 派生的内部名称。

关于java - Jackson JSON 中@JsonProperty 映射的辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8395447/

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