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