当 Kotlin 类具有属于新 @JvmInline 值类之一的属性时,Jackson 会将其转换为 JSON,并在字段名称上添加奇怪的后缀。
例如
@JvmInline
value class ModelName(val value: String)
Run Code Online (Sandbox Code Playgroud)
data class MyDto(val modelName: ModelName)
Run Code Online (Sandbox Code Playgroud)
Jackson 将生成如下所示的 JSON:
{
"modelName-11MJ8YI": "Some Model Name"
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加 @JsonProperty("modelName") 注释,但没有什么区别。
也许,升级jackson-module-kotlin可以解决这个问题。
https://github.com/FasterXML/jackson-module-kotlin/issues/356
如果无法升级,请将其命名getter为@get:JvmName("getModelName")也应该可以解决问题。
出现此问题的原因是in的方法名称 ( getter)具有随机后缀。value classKotlin
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |