我正在尝试学习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并为诸如firstName
或的字段名称添加ExclusionStrategy,country
但是我似乎无法设法排除诸如的某些字段的属性country.name
。
使用该方法public boolean shouldSkipField(FieldAttributes fa)
,FieldAttributes包含的信息不足,无法使用过滤器将该字段匹配country.name
。
PS:我想避免使用注释,因为我想对此进行改进,并使用RegEx过滤掉字段。
编辑:我试图看看是否有可能模拟Struts2 JSON插件的行为
使用Gson
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
编辑: 我重新打开了以下添加的问题:
我添加了第二个具有相同类型的字段,以进一步阐明此问题。基本上我想排除country.name
但不排除countrOfBirth.name
。我也不想将“国家”作为一种类型排除在外。因此,类型与我要查明和排除的对象图中的实际位置相同。