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