Gson: @Exposer vs @SerializedName
À l'égard de Gson quelle est la différence entre @Expose
et @SerializedName("stringValue")
?
- javacreed.com/gson-annotations-example ... 2 secondes sur google ... 🙂
Vous devez vous connecter pour publier un commentaire.
@SerializeName
est utilisé pour définir la clé d'objet json comprendra ,cependant@Expose
est utilisé pour décider si la variable sera exposée pour la Sérialisation et la Deserialisation ,ou pas. Voici la documentation de@Expose
.Expose
etSerializeName
?Même si il est tard, j'ai voulu répondre à cette question.
Pour l'expliquer, nous devons savoir ce qui est
serialization
etdeserialization
.serialization
est la conversion deobject
enjson string
etdeserialization
est la conversion dejson string
enobject
.Disons que nous avons
User
classe sans annotations.Et nous
serialize
ceobject
comme ci-dessousChaîne Json sera comme ceci
Si l'on ajoute une annotation
@SerializedName
Chaîne Json sera comme ceci
@Expose
est utilisé pour autoriser ou interdire lesserialization
etdeserialization
.@Expose
est facultatif et il dispose de deux paramètres de configuration:serialize
etdeserialize
. Par défaut, ils sont configurés pour être vrai.Pour
serialize
etdeserialize
avec@Expose
nous créons gson un objet comme çaCi-dessous
userName
ne sera pas désérialisé. nom d'utilisateur valeur seranull
.Ci-dessous
userName
de ne pas être sérialisé.Chaîne Json sera comme ceci. Seulement
userAge
sera désérialisé.suppose que si je j'ai mis une annotation Exposer sur le dessus d'un nom de variable ou le mot de passe sans SerializedName, il sera sérialisé COMME nom de variable
Mais si nous mettons SerializedName comme ("nom d'utilisateur") ou ("mot de passe"),ils seront sérialisés avec cette clé
si Sérialisé
si pas
En outre,
@Exposer
est livré avec deux booléens drapeaux:deserialize
etserialize
, pour permettre de sauter le terrain pour une phase.