Каков наиболее эффективный способ преобразования 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)