2017-07-10 6 views
4

nicht analysieren Ich schreibe eine App in Kotlin. Ich habe eine rohe JSON-Zeichenfolge von einem Webservice und ich muss sie mit Gson verwenden.Gson kann ein String JSON Format Daten in Kotlin

Ich tue dies:

val gson = Gson() 
val friends = gson.fromJson(response.rawResponse, JsonElement::class) 

aber der Compiler die richtige fromJson -Methodenüberladung nicht finden kann, die stattdessen zur Zeit verfügbar ist (fromJson(json: String!, typeOfT: Type!)).

Das ist der Fehler:

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 

Was mache ich falsch?

Antwort

7

sollten Sie eine java.lang.Class eher als ein kotlin.reflect.KClass, zum Beispiel passieren:

val friends = gson.fromJson(response.rawResponse, JsonElement::class.java) 
+0

dies das Problem gelöst. Ich danke dir sehr! Ich werde deine Antwort akzeptieren :) –

+0

@NicolaGiancecchi Überhaupt nicht. Es ist mir ein Vergnügen, :) –