如何在 Kotlin 中将 Jackson SNAKE CASE objectmapper 反序列化为 CAMEL CASE 数据 class 模型?

How to Deserialise the Jackson SNAKE CASE object mapper into CAMEL CASE data class model in Kotlin?

我已经使用

序列化了数据class模型“ProfileInfo”
val jsonString = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).writeValueAsString(profileInfo)

但是当我使用

将 jsonString 反序列化为数据 class 模型时
val profileInfo: ProfileInfo = jacksonObjectMapper().readValue<ProfileInfo>(jsonString)

只有不带下划线的字段接收值。其他带有下划线的字段分配为空。谁能帮助我了解如何使用 Jackson 对象映射器进行反序列化。

每次调用 jacksonObjectMapper() 都会创建一个新的 ObjectMapper,因此:

  • 对序列化和反序列化使用相同的对象映射器
val mapper = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
val jsonString = mapper.writeValueAsString(profileInfo)
...
val profileInfo: ProfileInfo = mapper.readValue(jsonString)
  • 为反序列化配置属性命名策略,你正在为序列化做同样的事情
val profileInfo: ProfileInfo = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).readValue(jsonString)