私は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>
編集: 私は次の追加で質問を再開しました:
この問題をさらに明確にするために、同じタイプの2番目のフィールドを追加しました。基本的に私は除外したいが、したくcountry.name
ないcountrOfBirth.name
。また、国をタイプから除外したくありません。そのため、タイプは同じですが、オブジェクトグラフ内で実際に特定して除外したい場所です。