Próbuję nauczyć się Gsona i walczę o wykluczenie z pola. Oto moje zajęcia
public class Student {
private Long id;
private String firstName = "Philip";
private String middleName = "J.";
private String initials = "P.F";
private String lastName = "Fry";
private Country country;
private Country countryOfBirth;
}
public class Country {
private Long id;
private String name;
private Object other;
}
Mogę użyć GsonBuilder i dodać ExclusionStrategy dla nazwy pola jak firstName
lub, country
ale wydaje mi się, że nie jestem w stanie wykluczyć właściwości niektórych pól takich jak country.name
.
Przy użyciu tej metody public boolean shouldSkipField(FieldAttributes fa)
FieldAttributes nie zawiera wystarczającej ilości informacji, aby dopasować pole do filtru podobnego do country.name
.
PS: Chcę uniknąć adnotacji, ponieważ chcę to poprawić i użyć RegEx do odfiltrowania pól.
Edycja : Próbuję sprawdzić, czy można emulować zachowanie wtyczki Struts2 JSON
za pomocą Gson
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
Edycja: Ponownie otworzyłem pytanie z następującym dodatkiem:
Dodałem drugie pole tego samego typu, aby później wyjaśnić ten problem. Zasadniczo chcę wykluczyć, country.name
ale nie countrOfBirth.name
. Nie chcę również wykluczać kraju jako typu. Więc typy są takie same, to faktyczne miejsce na wykresie obiektowym, które chcę wskazać i wykluczyć.
JsonSerializer
dla jakiegoś typu - Country
w twoim przypadku - dla którego następnie jest stosowany i ExclusionStrategy
który decyduje, które pola serializować.