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 firstNamelub, countryale 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.nameale 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ć.
JsonSerializerdla jakiegoś typu - Countryw twoim przypadku - dla którego następnie jest stosowany i ExclusionStrategyktóry decyduje, które pola serializować.