将Map<String, Any>
格式的JSON转换为相应的java / kotlin对象的最有效方法是什么?
现在我必须使用它,就像看起来像是一个愚蠢的实现。
gson.fromJson(gson.toJson(mapToConvert), typeToken)
有什么建议吗?
答案 0 :(得分:2)
您可以使用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)