Gson无法解析Kotlin中的字符串json格式数据
我正在Kotlin写一个应用程序。 我有一个来自web服务的原始JSON字符串,我需要使用它与Gson。
我正在这样做:
val gson = Gson() val friends = gson.fromJson(response.rawResponse, JsonElement::class)
但编译器无法找到正确的fromJson
方法重载,而现在可用( fromJson(json: String!, typeOfT: Type!)
)。
这是错误的:
Error:(65, 50) None of the following functions can be called with the arguments supplied: public open fun <T : Any!> fromJson(json: JsonElement!, classOfT: Class<JsonElement!>!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(json: JsonElement!, typeOfT: Type!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(reader: JsonReader!, typeOfT: Type!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(json: Reader!, classOfT: Class<JsonElement!>!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(json: Reader!, typeOfT: Type!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(json: String!, classOfT: Class<JsonElement!>!): JsonElement! defined in com.google.gson.Gson public open fun <T : Any!> fromJson(json: String!, typeOfT: Type!): JsonElement! defined in com.google.gson.Gson
我究竟做错了什么?
你应该传递一个java.lang.Class
而不是一个kotlin.reflect.KClass
,例如:
val friends = gson.fromJson(response.rawResponse, JsonElement::class.java)