我的Spring Boot API使用camelBase,但我需要通过我的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的反序列化,另一个用于正常的序列化/反序列化。