ホームページ >Java >&#&チュートリアル >注釈なしで Gson シリアル化から特定のフィールドを除外するにはどうすればよいですか?
Gson: 注釈なしのシリアル化から特定のフィールドを除外する
注釈なしで Gson のシリアル化から特定のフィールドを除外するのは難しい場合があります。カスタム ExclusionStrategy を使用してこれを実現する方法は次のとおりです。
Custom ExclusionStrategy
Gson は、フィールドの除外方法をカスタマイズできる ExclusionStrategy インターフェイスを提供します。このインターフェイスの実装を作成します。
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; } }
除外のカスタマイズ
この例では、ExclusionStrategy は指定された正規表現に基づいてフィールドを除外します。 country.name など、除外するフィールドに一致するパターンをカスタマイズできます。
ExclusionStrategy の使用
ExclusionStrategy を定義したら、設定時にそれを使用します。 GsonBuilder:
Gson gson = new GsonBuilder() .setExclusionStrategies(new FieldExclusionStrategy("country.name")) .create();
の使用法例
Gson を設定した後、次のように Student オブジェクトをシリアル化できます。
String json = gson.toJson(student);
これにより、シリアル化された JSON 出力から country.name フィールドが除外されます。
補足
以上が注釈なしで Gson シリアル化から特定のフィールドを除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。