Wie benutzerdefinierte Json Deserializer in Gson registrieren?Kotlin Gson benutzerdefinierte Deserializer für die Liste
Wenn ich Register Deserializer in Java-Code bin, funktioniert alles gut, aber wenn ich Kotlin in Java konvertieren - Deserializer-Methode nicht aufgerufen.
Kotlin Registercode:
val listType: Type = object : TypeToken<List<Advert>>() {}.type
val gson = GsonBuilder()
.registerTypeAdapter(listType, deserializer)
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
Java-Code:
Type listType = new TypeToken<List<Advert>>() {}.getType();
Gson gson = new GsonBuilder()
.registerTypeAdapter(listType, deserializer)
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
Deserializer Erklärung:
class AdvertsDeserializer : JsonDeserializer<List<Advert>> {
override fun deserialize(json: JsonElement?, typeOfT: Type?,
context: JsonDeserializationContext?): List<Advert> {
Methode
// list is List<Advert>
service.getAdverts()
.subscribe({
list ->
viewState.showAdvertsList(list)
}, {
error ->
error.printStackTrace()
})
0 Aufruf
Wie ich verstehe - Problem in Art von Json-Objekt (ListType), oder was mache ich falsch?
Dank supperss, es ist mein Problem lösen! –