私は 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
。また、国をタイプとして除外したくありません。したがって、型は同じです。オブジェクト グラフ内の実際の場所を特定して除外したいのです。