Kotlin实现Map转换Data class

2020-09-20  本文已影响0人  Anson_1f2a

实现一段Kotlin代码把map转换成data class。可以使用jackson里面ObjectMapper现成的方法就可以实现,不需要自己写太多的代码。

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.annotation.JsonProperty

data class Params(
        @JsonProperty("field")
        val field: Boolean
)

val map = mapOf("field" to true)

val objectMapper = ObjectMapper()
objectMapper.convertValue(map, Params::class.java)

注意:
需要在data class里面的属性加上@JsonProperty注解,否则会报以下异常。

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.newtranx.cat.doc.sql.entities.FprmParams` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
上一篇下一篇

猜你喜欢

热点阅读