java - Java Jackson 使用不同的属性名称
问题描述
我有一个生成的 Java 类,它@XMLElement
在字段上用注释将名称从大写更改为小写:
class RECTYPE {
@XmlElement(name = "simple")
public String SIMPLE;
@XmlElement(name = "bool")
public Boolean BOOL;
}
我知道我可以使用@JsonProperty
(使用 Jackson 更改 JSON 中的字段名称)来获取小写 Json,但我不想更改生成的类。
我可以以某种方式使用我拥有name
的注释的属性@XMLElement
并告诉杰克逊使用它吗?
谢谢!
解决方案
您还可以在其他类上使用 Mix-in 注释。这对您的情况很有用,Mix-in 类看起来像这样:
abstract class RectypeMixIn {
@JsonProperty("simple") abstract String getSimple(); // rename property
@JsonProperty("bool") abstract Boolean getBool(); // rename property
}
并以这种方式配置您的 ObjectMapper:
objectMapper.addMixInAnnotations(RECTYPE.class, RectypeMixIn.class);
在此处查看文档以获取更多详细信息
推荐阅读
- reactjs - react-styleguidist 中的动态示例
- c# - 问:是否可以将日期时间字段作为 asp.net-mvc-core 中表的键?
- c++ - 如何为全局函数编写单元测试,它在 C++ 中使用 gtest/gmock 调用另一个全局函数?
- android - 我从 firebase 数据库中获得了多次相同的数据,我只需要从 firebase 数据库中获得一次
- reactjs - RN 在 0.57.3 中禁用了样式道具检查吗?
- mysql - 按日期时间范围分组 - MySql
- ios - 有没有办法播种 Swift 4.2 随机数生成器
- ruby-on-rails - 在 Rails 引擎上导入引导程序
- python - 修复来自 API 的 JSON 输出
- docker - Heroku-cli:尝试部署 NodeJS 应用程序的 docker 映像后,docker run 以 127 退出