Hello! 欢迎来到小浪资源网!


Spring Boot中如何将Long类型数据序列化为String类型?


Spring Boot中如何将Long类型数据序列化为String类型?

spring JSON 序列化:Long 转 String

在 RESTful API 开发中,有时需要将 Java 对象序列化为 json 字符串。其中,对于 Long 类型的数据,通常需要将其转换为 String 类型才能在前端正确显示或处理。

问题:如何让 RESTController 和 Feign 接口序列化 Long 类型数据

在 Spring 项目中,可以通过以下步骤控制 Long 类型的序列化行为:

  1. 配置 Feign 的 Encoder:

    • 定义一个 Feign 配置类,实现 Encoder 接口
    • 重写 encode 方法,并使用 MappingJackson2httpMessageConverter 作为 HTTP 消息转换器。
  2. 配置 ObjectMapper:

    • 在 Feign 配置类中,创建并配置一个 ObjectMapper,并将其设置为 MappingJackson2HttpMessageConverter 的消息转换器。
    • 在 ObjectMapper 中,设置 SerializationFeature.WRITE_BIGDECIMAL_AS_PLaiN 和 SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS 属性为 false。这样可以确保 Long 类型数据以 String 形式序列化。

通过上述配置,即可控制 RESTController 和 Feign 接口的序列化行为。其中,对 Feign 接口的配置可以防止内部服务之间接口调用时发生 Long 转 String 的序列化。

相关阅读