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