我的Spring Boot API使用CamelCase,但我需要通过我的API将一些请求代理到使用Snake_Case的第三方API.可以将Jackson配置为反序列化Snake_Case的第三方响应,然后将其序列化回CamelCase到我的前端吗?

所需功能的逐步示例:

示例对象:

MyObject {
  String myProperty;
}
  • 我调用我的API
  • API调用第三方
  • 第三方退货
{
  "my_property": "my value"
}
  • 我的API将其反序列化为MyObject
  • 我的API序列化对象并返回
{
  "myProperty": "my value"
}

现在我使用的是@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class),当然它也会被序列化为Snake_Case.注意--尽管我的API使用了CamelCase,但始终从Snake_Case反序列化是可以接受的,因为这将是一个只读的enpoint.

推荐答案

您可以在各个属性上添加@JsonAlias批注,以添加用于反序列化的替代名称.或者,您可以使用显式命名策略配置多个对象映射器,一个用于该第三方API的反序列化,另一个用于正常的序列化/反序列化.

Java相关问答推荐

Spring boot:Bean和动态扩展器

在Java中测试DAO方法:假实现与内存数据库

如何使用jooq generator将表名和列名映射为人类可读的?

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

Java模式匹配记录

如何创建一个2d自上而下的移动系统,其中移动,同时持有两个关键是可能的处理?

获取字符串中带空格的数字和Java中的字符

为什么当我创建Robot对象时,JavaFX引发IlLegalStateException异常?

如何使用log4j2(Json)记录由";异常引起的所有";?

Java页面筛选器问题

X=x*0.90;产生有损转换误差.X*=0.90;不是.为什么?

在应用程序运行时更改LookAndFeel

用于Java的Visual Studio代码完成不起作用

如何利用OpenTelemeter将初始值(零)输出到普罗米修斯

我无法在我的Spring Boot应用程序中导入CSV依赖项

如何设置默认序列生成器分配大小

Java泛型方法重载

Springboot应用程序无法识别任何@RestController或@Service,我认为@Repository也无法识别

找到差异最小的回文

JavaFX 不嵌入谷歌 map html