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

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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)