Quel est le but fondamental de l’annotation @SerializedName dans Android utilisant GSon

quelqu’un peut-il me dire quel est le but fondamental de l’annotation @SerializedName dans Android en utilisant GSON

Donnez-moi un exemple différent. J’ai vérifié sur différents sites Web, mais je ne comprends pas le but principal de son utilisation.

Exemple de classe Java,

public class Person { @SerializedName("name") private Ssortingng personName; @SerializedName("bd") private Ssortingng birthDate; } 

Cette classe comporte deux champs représentant le nom de la personne et la date de naissance d’une personne. Ces champs sont annotés avec l’annotation @SerializedName . Le paramètre (valeur) de cette annotation est le nom à utiliser lors de la serialising et de la deserialising objects. Par exemple, le champ Java personName est représenté comme nom dans JSON.

Exemple JSON,

 { "name":"chintan", "bd":"01-01-1990" } 

Il y a déjà peu de réponses ici, mais j’aimerais append que si vous utilisez ProGuard pour ProGuard votre code et n’utilisez pas @SerializedName("name") dans votre classe de modèle, votre GSON ne fonctionnera pas. En raison de l’obscurcissement, vos noms de variables peuvent avoir changé de Ssortingng name de Ssortingng a en Ssortingng a qui entraîne Ssortingng a parsing GSON cassée, car GSON recherchera la clé a dans json et il échouera.

En spécifiant @SerializedName , GSON ne recherchera pas json en fonction du nom de la variable et utilisera simplement le @SerializedName spécifié.

Bien sûr, vous pouvez demander à proguard de ne pas masquer votre modèle, mais si vous souhaitez que le modèle soit obscurci, vous devez spécifier @SerializedName