SpringBoot + Jackson + Kotlin数据类:字段注释被忽略
我用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”。
我知道注释是正确的,根据这个讨论kotlinlang.org 。
就我所知,我没有任何应该影响这个的配置。
pom包含:
... spring-boot-starter-parent org.springframework.boot 1.5.6.RELEASE ... com.fasterxml.jackson.module jackson-module-kotlin ${jackson.version} com.fasterxml.jackson.datatype jackson-datatype-hibernate5 com.fasterxml.jackson.datatype jackson-datatype-hppc com.fasterxml.jackson.datatype jackson-datatype-jsr310 com.fasterxml.jackson.datatype jackson-datatype-json-org com.fasterxml.jackson.module jackson-module-afterburner ...
很奇怪。 我检查这个代码本地,并且都很好看
data class DataView(val id: String, @get:JsonProperty("dayOfMonth") val monthDay: MonthDay) data class MonthDay(val day: Int) fun main(args: Array) { val objectMapper = ObjectMapper() .registerKotlinModule() val dataView = DataView("someId", MonthDay(1)) //{"id":"someId","dayOfMonth":{"day":1}} println(objectMapper.writeValueAsString(dataView)) }
即使我删除registerKotlinModule
并从@get
更改为@get
, @field
。
- 在Kotlin中,Jackson数据类的反序列化错误
- 在Kotlin中,FasterXML / jackson循环引用,@JsonIdentityInfo和UnresolvedForwardReference异常
- Jackson与Kotlin混合
- jackson@JsonIgnoreProperties多个字段与Kotlin
- Kotlin数据类到JSON与春天/杰克逊
- 使用Retrofit2 + RxJava + Jackson重试202状态码
- jackson-dataformat-csv不会忽略未知属性
- Jackson @JsonProperty注释用于kotlin数据类的使用
- 基于科林地图的属性和jackson不工作 – 委托点不同的地图,即地图属性