Gson : Exclusion de champs spécifiques de la sérialisation sans annotations
Exclusion de champs spécifiques de la sérialisation Gson sans annotations peut être délicate. Voici comment y parvenir à l'aide d'une ExclusionStrategy personnalisée :
Custom ExclusionStrategy
Gson fournit une interface ExclusionStrategy qui vous permet de personnaliser la façon dont les champs sont exclus. Créez une implémentation de cette interface :
public class FieldExclusionStrategy implements ExclusionStrategy { private Pattern pattern; public FieldExclusionStrategy(String regex) { pattern = Pattern.compile(regex); } @Override public boolean shouldSkipField(FieldAttributes fa) { String fieldName = fa.getName(); return pattern.matcher(fieldName).matches(); } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }
Personnalisation de l'exclusion
Dans l'exemple fourni, ExclusionStrategy exclut les champs en fonction d'une expression régulière donnée. Vous pouvez personnaliser le modèle pour qu'il corresponde aux champs que vous souhaitez exclure, tels que country.name.
Utilisation de la stratégie d'exclusion
Une fois la stratégie d'exclusion définie, utilisez-la lors de la configuration le GsonBuilder :
Gson gson = new GsonBuilder() .setExclusionStrategies(new FieldExclusionStrategy("country.name")) .create();
Utilisation Exemple
Après avoir configuré Gson, vous pouvez sérialiser votre objet Student comme suit :
String json = gson.toJson(student);
Cela exclura le champ country.name de la sortie JSON sérialisée.
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!