Jackson不同的反序列化与Serlialization方法



我的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的反序列化,另一个用于正常的序列化/反序列化。

最新更新