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)