Gson:如何在不带批注的情况下从序列化中排除特定字段
2022-08-31 04:31:17
我正在尝试学习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
使用该方法,FieldAttributes 不包含足够的信息来匹配具有类似 过滤器的字段。public boolean shouldSkipField(FieldAttributes fa)
country.name
P.S:我想避免注释,因为我想改进这一点,并使用正则表达式过滤掉字段。
编辑:我正在尝试看看是否有可能模拟Struts2 JSON插件的行为
使用格森
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
编辑:我通过以下添加重新打开了问题:
我添加了具有相同类型的第二个字段以进一步澄清此问题。基本上我想排除,但不是。我也不想将国家/地区排除为类型。因此,类型是相同的,它是我想要精确定位和排除的对象图中的实际位置。country.name
countrOfBirth.name