kotlin 将data对象转为map
时间: 2023-07-16 20:17:27 浏览: 86
将JSON字符串转换成Map对象的方法
可以使用 Kotlin 的反射 API 来将一个 data class 转换为 map。以下是一个示例代码:
```kotlin
data class Person(val name: String, val age: Int)
fun main() {
val person = Person("Alice", 30)
val map = person.toMap()
println(map) // 输出: {name=Alice, age=30}
}
fun Any.toMap(): Map<String, Any?> {
return this::class.memberProperties.associateBy({ it.name }, { it.get(this) })
}
```
在上面的代码中,我们定义了一个 `toMap()` 扩展函数,它使用反射 API 从对象的属性中构建一个 map。
注意,这种方法只能用于 data class,因为普通的类可能会有一些属性是不能被序列化的。此外,由于使用了反射,这种方法可能会比手动编写转换代码更慢一些。
阅读全文