Utilisation de gson et retrofit et création d'un JsonDeserializer.Argument de type non reconnu dans Kotlin
En Java, la classe est définie comme:
public class Test implements JsonDeserializer<NavigationMenu[]> {...
Dans Kotlin, il est défini comme:
class NavigationMenuArrayDeserializer : JsonDeserializer<Array<NavigationMenu>> {...
La classe java est appelé comme prévu après avoir été enregistré auprès GSON. La classe Kotlin n'est jamais appelée.
Retrofit jsonClient = new Retrofit
.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(getGsonConverter())
.build();
...
private GsonConverterFactory getGsonConverter() {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setLenient();
gsonBuilder.registerTypeAdapter(NavigationMenu[].class, new NavigationMenuArrayDeserializer());
Gson gson = gsonBuilder.create();
return GsonConverterFactory.create(gson);
}
Toute idée pourquoi?
Avez-vous enregistré il, comme le montre 'JavaDoc': https://static.javadoc.io/com.google .code.gson/gson/2.6.2/com/google/gson/JsonDeserializer.html – guenhter
Pouvez-vous nous montrer le code dans lequel vous utilisez ce désérialiseur? –
J'hésite parce que la compagnie pour laquelle je travaille peut avoir des problèmes avec ça. Je vais vous dire que la classe n'est jamais appelée, donc aucun code ne s'exécute. Quand j'ai changé le kotlin en java, ça s'est bien passé. C'est quelque chose dans le tableau Kotlin