Gson将〈String,Any>Map到对象

x3naxklr  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(190)

Map<String, Any>的JSON转换为相应的java/Kotlin对象的最有效方法是什么?
现在我不得不像这样使用它,这看起来像是一个愚蠢的实现。
gson.fromJson(gson.toJson(mapToConvert), typeToken)
有什么建议吗?

guz6ccqo

guz6ccqo1#

您可以使用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)

相关问题