Comment enregistrer personnalisé désérialiseur Json dans Gson?Désérialiseur personnalisé Kotlin Gson pour la liste
Quand je suis déserializer de registre dans le code java tout fonctionne très bien, mais quand je convertis Kotlin en Java - désérialiser la méthode non appelée.
Kotlin Code registre:
val listType: Type = object : TypeToken<List<Advert>>() {}.type
val gson = GsonBuilder()
.registerTypeAdapter(listType, deserializer)
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
code Java:
Type listType = new TypeToken<List<Advert>>() {}.getType();
Gson gson = new GsonBuilder()
.registerTypeAdapter(listType, deserializer)
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
déclaration désérialiseur:
class AdvertsDeserializer : JsonDeserializer<List<Advert>> {
override fun deserialize(json: JsonElement?, typeOfT: Type?,
context: JsonDeserializationContext?): List<Advert> {
Méthode appelant
// list is List<Advert>
service.getAdverts()
.subscribe({
list ->
viewState.showAdvertsList(list)
}, {
error ->
error.printStackTrace()
})
Si je comprends bien - problème dans le type d'objet JSON (listType), ou ce que je fais mal?
Merci, il est à résoudre mon problème! –