美文网首页
Kotlin实现Map转换Data class

Kotlin实现Map转换Data class

作者: Anson_1f2a | 来源:发表于2020-09-20 16:51 被阅读0次

    实现一段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)
    

    相关文章

      网友评论

          本文标题:Kotlin实现Map转换Data class

          本文链接:https://www.haomeiwen.com/subject/rxkpyktx.html