J'appelle un service de repos (pas le mien) à l'aide de la modernisation qui renvoie une liste d'objets (s'il y en a plusieurs) ou un seul objet (le cas échéant). J'ai pu trouver un problème similaire ici mais la suggestion est de changer l'API que je n'ai pas de contrôle de. J'ai aussi lu ce thread qui semble être une bonne approche, mais existe-t-il un moyen de gérer cela en utilisant la modernisation? P>
3 Réponses :
Vous pouvez obtenir les données de réponse API comme pour ex: p> Utilisation de gson pour obtenir Liste d'articles ou célibataire modèle p> p> mapper
Comme l'auteur du deuxième poste que vous avez mentionné, je vous réfère également à la mise en œuvre de Lorsque vous utilisez GSON avec REDOFIT (convertisseur de rénovation-gson), il vous suffit d'enregistrer l'adaptateur avec une instance personnalisée donc l'objet code> dans le postarrayororysedesérializer code> décrit dans ce Réponse de la mienne .
gson code> et de créer le
rénovation code > instance avec cet instance
gson code>, voir Exemple d'exemple Classe d'assistance: P>
dans le
dans le
Jsondesérializer Code> nommé
ObjectAryRayorSingleDesérializer Code> Est-ce que vous devez rechercher une seule instance ou une matrice. Remplacer
objet code> avec DTO correspondant et modifier désespéréalizer en conséquence. P> p>
Merci. Aurait-il un extrait de code pour Jackson au lieu de GSON?
Bien que la réponse de tirho semble être applicable, j'ai découvert une solution différente et simple qui a fonctionné pour moi. Espérons que cela peut aider les autres aussi bien.
ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); Retrofit retrofit = new Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(JacksonConverterFactory.create(mapper)) .client(okHttpClient) .build();
Peut-être que cela peut aider Stackoverflow.com/questions/53611583/... . Veuillez ajouter du code, au moins votre classe "objet"