Я пытаюсь узнать Гссона, и я борюсь с исключением поля. Вот мои классы
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
. Я также не хочу исключать страну как тип.
Таким образом, типы являются тем же самым фактическим местом в графе объектов, который я хочу точно определить и исключить.