2

私は次のクラスを持っています -

従業員

パブリッククラス従業員{

    プライベート文字列 firstName ;
    プライベート文字列 lastName ;
    プライベート文字列 emailAddress ;
    プライベート文字列 ssn ;
}

給与計算

公共クラスの給与{

    // 異なる給与関連フィールド

    プライベート従業員 emp ;

}

人事

パブリック クラス HR {

    // さまざまな HR 関連フィールド

    プライベート従業員 emp ;

}

Payroll クラスをシリアル化するときに、Employee クラスから ssn フィールドをシリアル化したくありません。

HR クラスをシリアル化するとき、Employee クラスから emailAddress フィールドをシリアル化したくありません。

Jackson JSON API を使用してフィールドをシリアル化から動的に除外するにはどうすればよいですか?

4

3 に答える 3

6

Jackson JSON API を使用してフィールドをシリアル化から動的に除外するにはどうすればよいですか?

これは、JacksonJsonViewsを適用するための最有力候補のようです。

public class Employee {

    private String firstName;
    private String lastName;
    @JsonView(Views.Payroll.class) private String emailAddress; 
    @JsonView(Views.HR.class) private String ssn;
}

public class Payroll {
    // snip

    @JsonView(Views.Payroll.class)
    private Employee emp;
}

public class HR {
    // snip

    @JsonView(Views.HR.class)
    private Employee emp;
}
于 2013-04-02T20:02:18.867 に答える