Heim > Java > javaLernprogramm > Wie kann ich bestimmte GSON-Feldeigenschaften ohne Anmerkungen ausschließen?

Wie kann ich bestimmte GSON-Feldeigenschaften ohne Anmerkungen ausschließen?

Linda Hamilton
Freigeben: 2024-12-12 13:04:10
Original
899 Leute haben es durchsucht

How Can I Exclude Specific Gson Field Properties Without Annotations?

Bestimmte Feldeigenschaften von der Gson-Serialisierung ausschließen

In Gson kann der Ausschluss bestimmter Feldeigenschaften ohne Verwendung von Anmerkungen durch benutzerdefinierte Feldausschlussstrategien erreicht werden. Durch die Implementierung der ExclusionStrategy-Schnittstelle können Sie die Ausschlusskriterien entsprechend Ihren Anforderungen anpassen.

Ein Ansatz besteht darin, eine Feldausschlussstrategie basierend auf dem von Gson bereitgestellten FieldAttributes-Objekt zu erstellen. Während FieldAttributes keinen direkten Zugriff auf verschachtelte Eigenschaften bietet, können Sie das Objektdiagramm mithilfe von Reflektion durchlaufen, um nach bestimmten Feldeigenschaftskombinationen zu suchen.

Zum Beispiel, um das Land auszuschließen. name-Eigenschaft können Sie die folgende Ausschlussstrategie verwenden:

public class FieldExclusionStrategy implements ExclusionStrategy {

    private List<String> excludedProperties;

    public FieldExclusionStrategy(List<String> excludedProperties) {
        this.excludedProperties = excludedProperties;
    }

    @Override
    public boolean shouldSkipField(FieldAttributes fieldAttributes) {
        String fieldName = fieldAttributes.getName();
        for (String excludedProperty : excludedProperties) {
            if (fieldName.startsWith(excludedProperty)) {
                return true;
            }
        }
        return false;
    }

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

In Ihrem Beispiel würden Sie die Ausschlussstrategie als verwenden folgt:

Gson gson = new GsonBuilder()
                .setExclusionStrategies(new FieldExclusionStrategy(Arrays.asList("country.name")))
                .create();
Nach dem Login kopieren

Alternativ können Sie die Annotation SerializedName verwenden, um ähnliche Ergebnisse zu erzielen. Durch Annotieren der Eigenschaft country.name mit @SerializedName(value = "myCountryName") können Sie einen benutzerdefinierten Namen für die Eigenschaft angeben, der während der Serialisierung verwendet wird. Dadurch können Sie die ursprüngliche Eigenschaft country.name von der JSON-Ausgabe ausschließen.

Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte GSON-Feldeigenschaften ohne Anmerkungen ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage