Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jackson JSON动态忽略属性_Json_Jackson - Fatal编程技术网

Jackson JSON动态忽略属性

Jackson JSON动态忽略属性,json,jackson,Json,Jackson,我有以下课程: 员工 public class Employee { private String firstName ; private String lastName ; private String emailAddress ; private String ssn ; } 公营雇员{ 私有字符串名; 私有字符串lastName; 私有字符串电子邮件地址; 私有字符串ssn; } 工资单 public class Payroll { // di

我有以下课程:

员工

public class Employee { private String firstName ; private String lastName ; private String emailAddress ; private String ssn ; } 公营雇员{ 私有字符串名; 私有字符串lastName; 私有字符串电子邮件地址; 私有字符串ssn; } 工资单

public class Payroll { // different payroll related fields private Employee emp ; } 公共类工资单{ //不同的薪资相关字段 私人雇员环境管理计划; } HR

public class HR { // different HR related fields private Employee emp ; } 公共类人力资源{ //不同的人力资源相关领域 私人雇员环境管理计划; } 现在,当我序列化Payroll类时,我不想从Employee类序列化我的ssn字段

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

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

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

这似乎是申请的最佳人选


如果还有另一个类,比如Department,它将Employee作为对象,当序列化时,它希望序列化Employee中的所有内容,那么该类是如何工作的呢?链接文档介绍了这一点。在这种情况下,您可以完全禁用视图处理。有没有一种方法可以根据运行时确定的某个值来选择使用哪些视图,并对其进行更改?如果不是,那么这并不能回答问题的“动态”部分。
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;
}