ホームページ > Java > &#&チュートリアル > 注釈のない Gson フィールドを除外するにはどうすればよいですか?

注釈のない Gson フィールドを除外するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-05 19:30:15
オリジナル
843 人が閲覧しました

How to Exclude Gson Fields Without Annotations?

アノテーションを使用しない Gson フィールドの除外

Gson では、アノテーションを使用せずに特定のフィールドをシリアル化から除外できます。 GsonBuilder.setExclusionStrategies() メソッドを使用した別のアプローチを検討してみましょう。

ExclusionStrategy インターフェイスを使用すると、シリアル化中にどのフィールドを除外または含めるかを制御できます。ただし、指定された FieldAttributes 情報は、特定のフィールド パスを特定するには十分ではない可能性があります。

この問題に対処するには、ExclusionStrategy インターフェイスを拡張し、独自の除外基準を定義することを検討してください。正規表現を使用すると、特定のフィールド パスと一致し、それに応じてそれらを除外できます。このアプローチにより、除外するフィールドをより柔軟に指定できます。

フィールド パスに基づいてフィールドの除外を実現する方法の例を次に示します。

import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;

public class CustomExclusionStrategy implements ExclusionStrategy {

    private String[] excludedPaths;

    public CustomExclusionStrategy(String[] excludedPaths) {
        this.excludedPaths = excludedPaths;
    }

    @Override
    public boolean shouldSkipField(FieldAttributes fieldAttributes) {
        for (String excludedPath : excludedPaths) {
            if (fieldAttributes.getDeclaringClass().getName() + "." + fieldAttributes.getName().equals(excludedPath)) {
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean shouldSkipClass(Class<?> clazz) {
        return false;
    }
}
ログイン後にコピー

その後、このカスタムを使用できます。 GsonBuilder での除外戦略:

Gson gson = new GsonBuilder()
    .setExclusionStrategies(new CustomExclusionStrategy("country.name"))
    .create();
ログイン後にコピー

このアプローチにより、次のような特定のフィールド パスを除外できます。 「country.name」、シリアル化中。必要に応じて、この戦略を拡張して、より複雑な除外基準をサポートできます。

以上が注釈のない Gson フィールドを除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート