reik.schatz
03/28/2019, 11:41 AMimport com.fasterxml.jackson.annotation.JsonUnwrapped
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.KotlinModule
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
data class Container(@JsonUnwrapped val row: Map<String, Any?>)
class JsonUnwrappedTest {
@Test
fun `should unwrap`() {
val row = Container(row = mapOf("foo" to "bar"))
val objectMapper = ObjectMapper()
objectMapper.registerModule(KotlinModule())
val json = objectMapper.writeValueAsString(row)
assertThat(json).isEqualTo("""{"foo": "bar"}""") // fails
}
}
diesieben07
03/28/2019, 11:48 AMJsonUnwrapped
only works for POJOs, not Maps. You can use a combination of JsonAnyGetter
and JsonAnySetter
to achieve something similar, seen here:
https://stackoverflow.com/a/18043785reik.schatz
03/28/2019, 12:27 PM