我在努力学习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
或country
添加一个排除策略,但我似乎无法排除某些字段如country.name
的属性。
使用方法public boolean shouldSkipField(FieldAttributes fa)
, FieldAttributes不包含足够的信息来匹配像country.name
这样的过滤器。
附注:我想避免使用注释,因为我想改进这一点,并使用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
。我也不想把Country排除在外。
所以类型是相同的它是我想要精确定位并排除的对象图中的实际位置