Gson のメソッドを使用するときにリスト内の特定のフィールドを無視するには、Gson のアノテーションとメソッドtoJson()
を使用できます。@Expose
excludeFieldsWithoutExposeAnnotation()
まず、List の Bean クラスで、@Expose
アノテーションを使用してシリアル化するフィールドをマークします。
public class DataRecordTempHumi {
@Expose
private String field1;
@Expose
private String field2;
private String field3;
// getter and setter methods
}
上記のコードでは、フィールドと@Expose
フィールドに注釈を付けて、シリアル化する必要があることを示しました。field1
field2
次に、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 文字列に変換できるようになります。特定の実装は実際のニーズに応じて異なる場合があり、独自の状況に応じて調整および拡張できることに注意してください。