[Java] @Expose アノテーションと excludeFieldsWithoutExposeAnnotatGson() メソッドを使用して、toJson() プロセスの一部のフィールドを無視します

Gson のメソッドを使用するときにリスト内の特定のフィールドを無視するには、Gson のアノテーションとメソッドtoJson()を使用できます@ExposeexcludeFieldsWithoutExposeAnnotation()

まず、List の Bean クラスで、@Exposeアノテーションを使用してシリアル化するフィールドをマークします。

public class DataRecordTempHumi {
    
    
    @Expose
    private String field1;

    @Expose
    private String field2;

    private String field3;

    // getter and setter methods
}

上記のコードでは、フィールドと@Exposeフィールドに注釈を付けて、シリアル化する必要があることを示しました。field1field2

次に、Gson オブジェクトを作成し、次のexcludeFieldsWithoutExposeAnnotation()メソッドを使用します。

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

次に、この Gson オブジェクトを使用してリストを JSON 文字列に変換できます。

String json = gson.toJson(data);

上記のコードでは、dataは変換する List オブジェクトです。

@Expose上記の手順により、注釈付きのフィールドのみがシリアル化され、他のフィールドは無視されます。特定の実装は実際のニーズに応じて異なる場合があり、独自の状況に応じて調整および拡張できることに注意してください。

さらす

imports がない場合はcom.google.gson.annotations.Expose、リスト内の特定のフィールドを無視する別の方法を選択できます。

ExclusionStrategyシリアル化する必要のないフィールドを除外するカスタムを作成できます。サンプルコードは次のとおりです。

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

public class CustomExclusionStrategy implements ExclusionStrategy {
    
    

    @Override
    public boolean shouldSkipField(FieldAttributes f) {
    
    
        // 指定需要忽略的字段名称
        return f.getName().equals("field3");
    }

    @Override
    public boolean shouldSkipClass(Class<?> clazz) {
    
    
        return false;
    }
}

// 创建 Gson 对象时注册自定义的 ExclusionStrategy
Gson gson = new GsonBuilder().setExclusionStrategies(new CustomExclusionStrategy()).create();

// 使用 Gson 对象将 List<DataRecordTempHumi> 转换为 JSON 字符串
String json = gson.toJson(data);

ExclusionStrategy上記のコードでは、インターフェイスのカスタム実装クラスを作成しCustomExclusionStrategy、無視するフィールド名を指定します。次に、Gson オブジェクトを作成するときに、setExclusionStrategies()メソッドを通じてカスタム オブジェクトExclusionStrategyを登録します。

上記の手順により、指定されたフィールドを無視してリストを JSON 文字列に変換できるようになります。特定の実装は実際のニーズに応じて異なる場合があり、独自の状況に応じて調整および拡張できることに注意してください。

おすすめ

転載: blog.csdn.net/gao511147456/article/details/132013956