gpt4 book ai didi

spring-boot - SpringBoot + Jackson + Kotlin 数据类 : Field annotations ignored

转载 作者:行者123 更新时间:2023-12-04 02:38:58 25 4
gpt4 key购买 nike

我正在使用带有 Kotlin 和 Java8 时间的 Spring Boot。以某种方式忽略了数据类字段上的 Jackson 注释。

import com.fasterxml.jackson.annotation.JsonProperty
import java.time.MonthDay

data class DataView(val id: String,
@get:JsonProperty("dayOfMonth") val monthDay: MonthDay) {}

为什么这些注释会被忽略?响应仍包含字段名称“monthDay”。

根据 discuss.kotlinlang.org 上的讨论,我知道注释是正确的.

据我所知,我没有任何应该影响这一点的配置。

pom 包含:
...
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
...
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hppc</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-json-org</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-afterburner</artifactId>
</dependency>
...

最佳答案

很奇怪。我在本地检查此代码,一切看起来都很好

data class DataView(val id: String,
@get:JsonProperty("dayOfMonth") val monthDay: MonthDay)

data class MonthDay(val day: Int)

fun main(args: Array<String>) {
val objectMapper = ObjectMapper()
.registerKotlinModule()

val dataView = DataView("someId", MonthDay(1))

//{"id":"someId","dayOfMonth":{"day":1}}
println(objectMapper.writeValueAsString(dataView))
}

即使我删除 registerKotlinModule 也能正常工作并从 @get 更改至 @field .

关于spring-boot - SpringBoot + Jackson + Kotlin 数据类 : Field annotations ignored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47675555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com