Heim >Java >javaLernprogramm >Wie schließe ich Gson-Felder ohne Anmerkungen aus?

Wie schließe ich Gson-Felder ohne Anmerkungen aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 19:30:15843Durchsuche

How to Exclude Gson Fields Without Annotations?

Gson-Feldausschluss ohne Anmerkungen

In Gson können Sie bestimmte Felder von der Serialisierung ausschließen, ohne Anmerkungen zu verwenden. Lassen Sie uns einen alternativen Ansatz mit der Methode GsonBuilder.setExclusionStrategies() erkunden.

Mit der ExclusionStrategy-Schnittstelle können Sie steuern, welche Felder während der Serialisierung ausgeschlossen oder eingeschlossen werden. Die angegebenen FieldAttributes-Informationen reichen jedoch möglicherweise nicht aus, um bestimmte Feldpfade zu bestimmen.

Um dieses Problem zu beheben, sollten Sie erwägen, die ExclusionStrategy-Schnittstelle zu erweitern und Ihre eigenen Ausschlusskriterien zu definieren. Sie können reguläre Ausdrücke verwenden, um bestimmte Feldpfade abzugleichen und sie entsprechend auszuschließen. Dieser Ansatz bietet eine größere Flexibilität bei der Angabe der auszuschließenden Felder.

Hier ist ein Beispiel dafür, wie Sie einen Feldausschluss basierend auf einem Feldpfad erreichen können:

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;
    }
}

Sie können dann diesen Benutzerdefiniert verwenden Ausschlussstrategie in Ihrem GsonBuilder:

Gson gson = new GsonBuilder()
    .setExclusionStrategies(new CustomExclusionStrategy("country.name"))
    .create();

Mit diesem Ansatz können Sie bestimmte Feldpfade wie „Land.Name“ während der Serialisierung ausschließen. Sie können diese Strategie bei Bedarf erweitern, um komplexere Ausschlusskriterien zu unterstützen.

Das obige ist der detaillierte Inhalt vonWie schließe ich Gson-Felder ohne Anmerkungen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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