【问题标题】:Jackson produces invalid field names from Kotlin value classesJackson 从 Kotlin 值类中生成无效的字段名称
【发布时间】:2021-08-25 00:06:25
【问题描述】:

当 Kotlin 类的属性是新的 @JvmInline 值类之一时,Jackson 会将其转换为 JSON,并在字段名称上加上一个奇怪的后缀。

例如

@JvmInline
value class ModelName(val value: String)
data class MyDto(val modelName: ModelName)

Jackson 将生成如下所示的 JSON:

{
    "modelName-11MJ8YI": "Some Model Name"
}

我尝试添加 @JsonProperty("modelName") 注释,但没有任何区别。

【问题讨论】:

    标签: kotlin jackson


    【解决方案1】:

    升级jackson-module-kotlin 可能会解决这个问题。 https://github.com/FasterXML/jackson-module-kotlin/issues/356

    如果无法升级,将getter 命名为@get:JvmName("getModelName") 也应该可以解决问题。

    出现这个问题的原因是Kotlinvalue class的方法名(getter)有一个随机的后缀。

    【讨论】:

    • 是的,我的一个小学生错误。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2013-11-29
    • 2015-11-14
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多