java - 在 Kotlin 中将映射转换为对象

标签 java json firebase object kotlin

大家好,我有一个简单的问题, 我有一个充满元素的 Map,我想将其转换为我的 Object ,让我向您展示一些代码:

这是我的对象:

class Bundle(map: Map<String, Any>) {
    var version: String?
    var app: String?
    var countries: ArrayList<Any>?
    var currency: ArrayList<Any>?
    var force: Boolean?
    var name: String?
    var service: ArrayList<Any>?
    var money: Int?

    init {
        version= null
        app= null
        countries= arrayListOf()
        currency= arrayListOf<Any>()
        force= true
        name = ""
        service= arrayListOf<Any>()
        money= 0
    }
}

还有我想要转换的 map :

fun getBundle() {

    var db = FirebaseFirestore.getInstance()
    val docRef = db.collection("aa").document("bb")

    docRef.get().addOnCompleteListener { task ->
        if (task.isSuccessful) {
            val document = task.result
            if (document.exists()) {
                Log.d("Doc", "DocumentSnapshot data: " + document.data!!)
              // Here i want to take (document.data!!) and convert it to my Bundle class

            } else {
                Log.d("NO doc", "No such document")
            }
        } else {
            Log.d("ERROR", "get failed with ", task.exception)
        }
    }
}

谢谢!

最佳答案

好的,我找到了解决方案

我将 Bundle 类转换为数据类:

data class Bundle(
    var version: String? = null,
    var app: String? = null,
    var countries: ArrayList<Any> = arrayListOf(),
    var currency: HashMap<String, Any> = hashMapOf(),
    var force: Boolean = false,
    var name: String? = null,
    var service: ArrayList<Any> = arrayListOf(),
    var money: Int = 0
)

然后我只是将其添加到我的方法中,我想将我的 Map 转换为我的 Bundle 对象:

val myObject = document.toObject(Bundle::class.java)

关于java - 在 Kotlin 中将映射转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50160654/

相关文章:

java - 使用用户事务在 Tomcat 中实现 Hibernate 持久化

java - 如何使用 Firebase Cloud Messaging 在前台显示多个通知

java - 应用程序在错误的 Apache Tomcat 服务器上运行

Firebase Cloud Functions 使用 API key 保护 HTTPS 端点

node.js - Firebase 未按预期运行回调

node.js - 适用于 Firebase 的 ESOCKETTIMEDOUT 云函数

java - OSGi 中的 AWS SDK 导致 "Unable to resolve/Missing requirement"错误

json - 谷歌自定义搜索 JSON API

java - 获取 JAX-RS 服务以创建具有 JsonObject 属性的对象

python - 使用 Django 的 render() 渲染 JSON 响应