Jackson JSON动态忽略属性

时间:2013-04-02 20:00:36

标签: json jackson

我有以下课程 -

员工

public class Employee {

    private String firstName ;
    private String lastName ;
    private String emailAddress ; 
    private String ssn ;
}

工资单

public class Payroll {

    // different payroll related fields

    private Employee emp ;

}

小时

public class HR {

    // different HR related fields

    private Employee emp ;

}

现在,当我序列化我的Payroll类时,我不想从Employee类序列化我的ssn字段。

当我序列化HR课程时,我不想从Employee课程序列化我的emailAddress字段。

如何使用Jackson JSON API动态排除序列化中的字段?

1 个答案:

答案 0 :(得分:5)

  

如何使用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;
}