java - Gson Map<String, Any> 到对象

标签 java android kotlin gson

将 JSON 格式转换为 Map<String, Any> 的最有效方法是什么?到相应的java/kotlin对象?

现在我必须像这样使用它,这看起来是一个愚蠢的实现。

gson.fromJson(gson.toJson(mapToConvert), typeToken)

有什么建议吗?

最佳答案

您可以使用 JsonElement :

val jsonElement = gson.toJsonTree(map)
val foo = gson.fromJson(jsonElement, Foo::class.java)

您可以使用实用函数使它看起来更好:

inline fun <reified T : Any> Gson.fromMap(map: Map<*, *>) {
    return fromJson(toJsonTree(map), T::class.java)
}

然后你可以这样调用它:

gson.fromMap<Foo>(map)

关于java - Gson Map<String, Any> 到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47904146/

相关文章:

android - 如何在 Jetpack Compose 中按基线对齐行元素

java - 使用box java sdk下载项目而不知道它是文件还是文件夹

java - 如何在每次调用 doReturn 时返回一个新实例?

java - 我们什么时候使用 Statement 或 PreparedStatement?

android - 此客户端 ID 全局唯一且已被使用

java.lang.NullPointerException : (ListFragment)

在 HTTPS 上上传文件时出现 Android OutOfMemoryException

kotlin - Kotlin&Arrow.io:与IO.bracketCase的事务

java - 抽象类中 LinkedHashMap 的初始容量应该始终为零吗?

kotlin - 如何使用 Kotlin channel 实现自然(又名智能)批处理?