Я намагаюся навчитися Гсону і борюся з виключенням з поля. Ось мої заняття
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;
}
Я можу використовувати GsonBuilder і додати ExcludStrategy для імені поля на кшталт firstName
або, country
але я, здається, не в змозі виключити властивості певних полів, таких як country.name
.
Використовуючи метод public boolean shouldSkipField(FieldAttributes fa)
, FieldAttributes не містить достатньо інформації для відповідності поля з таким фільтром country.name
.
PS: Я хочу уникати анотацій, оскільки хочу покращити це питання і використовувати RegEx для фільтрації полів.
Редагувати : Я намагаюся зрозуміти, чи можна наслідувати поведінку плагіна Struts2 JSON
за допомогою Gson
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
Редагувати: Я знову відкрив питання із наступним доповненням:
Для подальшого з'ясування цієї проблеми я додав друге поле з тим же типом. В основному я хочу виключити, country.name
але ні countrOfBirth.name
. Я також не хочу виключати країну як тип. Тож типи однакові, це фактичне місце в графіку об'єкта, яке я хочу точно визначити та виключити.
JsonSerializer
типу для певного типу - Country
у вашому випадку - для якого потім застосовується анкета, ExclusionStrategy
яка визначає, які поля для серіалізації.