【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 2016-07-29
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多