Clase de datos de SpringBoot + Jackson + Kotlin: annotations de campo ignoradas

Estoy usando Spring Boot con Kotlin y Java8. De alguna manera, las annotations de Jackson en los campos de class de datos se ignoran.

import com.fasterxml.jackson.annotation.JsonProperty import java.time.MonthDay data class DataView(val id: String, @get:JsonProperty("dayOfMonth") val monthDay: MonthDay) {} 

¿Por qué se ignorarían estas annotations? La respuesta aún contiene el nombre de campo "monthDay".

Sé que la anotación es correcta, de acuerdo con esta discusión en discuss.kotlinlang.org .

No tengo ninguna configuration que deba afectar esto, hasta donde yo sé.

pom contiene:

 ... <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> ... 

Muy extraño. Compruebo este código local, y todo se ve bien

 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)) } 

Funciona igual incluso si @get registerKotlinModule y cambio de @get a @field .

  • No puedo excluir MongoAutoConfiguration en Springboot-Kotlin (MongoSocketOpenException)
  • Spring Boot: Agregar @Transactional produce java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder $ PartialComparable
  • Jackson ready only collections
  • Analizando un object json con un campo dynamic en Kotlin
  • Kotlin: ejecuta una testing de integración, el error `diversión principal ya está definido`
  • Configure Jackson para usar SNAKE_CASE "globalmente" en Spring Boot 2.0.0.M1
  • Kotlin + SpringBoot 2.0.0-M4 falló en el context de la aplicación de carga (BeanCreationException)
  • Seguridad de spring. Página de inicio de session multilenguaje basada en url
  • El file spring-configuration-metadata.json no se genera en IntelliJ Idea for Kotlin @ConfigurationProperties class
  • Spring Boot @ Autoajustado con Kotlin en @Service siempre es nulo
  • Spring Boot e Hibernate. Manejar la fábrica de sesiones