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