Quel est le but de base de @SerializedName annotation dans android en utilisant GSon
est-ce que n'importe qui peut me dire quel est le but de base de @SerializedName annotation dans android en utilisant GSON
Donnez-moi un autre exemple. J'ai vérifié dans le site Web différent, mais je ne peux pas comprendre ce qui est le but principal de l'utiliser.
2 réponses
exemple de classe Java,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
cette classe comprend deux champs qui représentent 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 pour les objets serialising
et deserialising
. Par exemple, le champ Java nom est représenté par nom dans JSON.
exemple JSON,
{
"name":"chintan",
"bd":"01-01-1990"
}
il y a déjà peu de réponses ici,mais je voudrais ajouter que si vous utilisez ProGuard
pour brouiller votre code et ne pas utiliser @SerializedName("name")
dans votre classe de modèle, alors votre GSON ne fonctionnera pas. Parce qu'en raison de l'obscurcissement, vos noms de variables pourraient avoir changé de String name
à String a
résultant en une analyse de Gson cassée comme Gson va chercher la clé a
dans json et il échouera.
en spécifiant @SerializedName
, GSON ne regardera pas dans JSON basé sur le nom de la variable & va juste utiliser spécifié @SerializedName
.
bien sûr, vous pouvez dire à proguard de ne pas brouiller votre modèle, mais si vous voulez que le modèle soit brouillé, alors vous devez spécifier @SerializedName