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