【问题标题】:How to Deserialise the Jackson SNAKE CASE object mapper into CAMEL CASE data class model in Kotlin?如何在 Kotlin 中将 Jackson SNAKE CASE 对象映射器反序列化为 CAMEL CASE 数据类模型?
【发布时间】:2021-01-25 05:12:58
【问题描述】:
我已经使用
序列化了数据类模型“ProfileInfo”
val jsonString = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).writeValueAsString(profileInfo)
但是当我使用
将jsonString反序列化为数据类模型时
val profileInfo: ProfileInfo = jacksonObjectMapper().readValue<ProfileInfo>(jsonString)
只有没有下划线的字段接收值。下划线指定为空的其他字段。任何人都可以帮助我了解如何使用 Jackson 对象映射器进行反序列化。
【问题讨论】:
标签:
android
android-studio
kotlin
jackson
jackson-databind
【解决方案1】:
对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)