He serializado el modelo de clase de datos "Información de perfil" usando

val jsonString = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).writeValueAsString(profileInfo)

Pero cuando deserializo la cadena json en el modelo de clase de datos usando

val profileInfo: ProfileInfo = jacksonObjectMapper().readValue<ProfileInfo>(jsonString)

Solo los campos sin guiones bajos reciben el valor. otros campos con guiones bajos asignados como nulos. ¿Alguien podría ayudarme sobre cómo deserializar usando el mapeador de objetos de Jackson?

0
Stephenraj 25 ene. 2021 a las 08:12

1 respuesta

La mejor respuesta

Cada llamada al jacksonObjectMapper() crea un nuevo ObjectMapper, así que:

  • utilizar el mismo mapeador de objetos tanto para la serialización como para la deserialización
val mapper = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
val jsonString = mapper.writeValueAsString(profileInfo)
...
val profileInfo: ProfileInfo = mapper.readValue(jsonString)
  • configure la estrategia de nomenclatura de propiedades para la deserialización de la misma manera, lo está haciendo para la serialización
val profileInfo: ProfileInfo = jacksonObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).readValue(jsonString)
1
Mafor 25 ene. 2021 a las 15:51