Gson Map <string,any =“”>到Object

时间:2017-12-20 10:41:13

标签: java android kotlin gson

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

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

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

有什么建议吗?

1 个答案:

答案 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)