/ / Impossible de désérialiser un autre nom avec GSON, AutoValue et Retrofit 2 - java, gson, retrofit2, android-gson, valeur automatique

Impossible de désérialiser un autre nom avec GSON, AutoValue et Retrofit 2 - java, gson, retrofit2, android-gson, valeur automatique

J'utilise retrofit version 2.1.0 pour désérialiser JSON en pojos. Un champ dans le pojo peut être reçu sous différents noms dans le JSON. Pour désérialiser correctement le champ, j'ai utilisé l'annotation @serializedName de la manière suivante:

@AutoValue
public abstract class Media implements Parcelable {

@SerializedName(value = "title", alternate = {"name"})
public abstract String title();

// More fields and code

Cependant, pour une raison quelconque, lorsque JSON résultant a le champ sous la clé "titre", Gson le lit correctement, mais lorsque le champ est associé à la clé "nom", il n'est pas lu.

Comment faire en sorte que GSON reconnaisse le nom alternatif lors de la désérialisation?

Réponses:

1 pour la réponse № 1

Je suppose que vous utilisez le com.ryanharter.auto.value:auto-value-gson brancher. La prise en charge de noms sérialisés alternatifs n’était pas ajoutée jusqu'à la version 0.4.0. Mise à jour de com.ryanharter.auto.value:auto-value-gson:0.4.2 et vous devriez alors pouvoir désérialiser les noms alternatifs.


-1 pour la réponse № 2

Apparemment, le problème est lié à Colis. Vous voudrez peut-être jeter un oeil à cette colisier

@AutoValue
@Parcel
public abstract class Media {
@ParcelProperty("title") public abstract String title();

}