Java和@jsonproperty

发布于 2025-01-18 02:46:23 字数 633 浏览 0 评论 0原文

我想知道是否有一种方法可以将 @JsonProperty 应用于类的继承字段。 例如我有以下课程。

public class Person {
    protected String id;
    protected String firstName;
    protected String middleName;
    protected String lastName;
}

...

/**
 * need to figure out here, how to apply @JsonProperty
 * to the fields below of the parent class:
 * protected String id;
 * protected String firstName;
 * protected String middleName;
 * protected String lastName;
 */
public class Employee extends Person {
   @JsonProperty("DepartmentID")
   protected String departmentId;
}

这里的目标是只有 Employee 类才会有 @JsonProperty 而不是 Person 类。

谢谢。

I am wondering if there is a way to apply @JsonProperty to an inherited fields of a class.
For example I have the following classes.

public class Person {
    protected String id;
    protected String firstName;
    protected String middleName;
    protected String lastName;
}

...

/**
 * need to figure out here, how to apply @JsonProperty
 * to the fields below of the parent class:
 * protected String id;
 * protected String firstName;
 * protected String middleName;
 * protected String lastName;
 */
public class Employee extends Person {
   @JsonProperty("DepartmentID")
   protected String departmentId;
}

the goal here is that only Employee class will have @JsonProperty not the Person class.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

属性 2025-01-25 02:46:23

使用Getters和Setter,并注释您的Getter而不是字段。杰克逊将根据getter名称自动检测设置器。

public class Person {
    private String id;
    private String firstName;
    private String middleName;
    private String lastName;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

   .. etc ...
}

public class Employee extends Person {
    @JsonProperty("id")
    @Override
    public String getId() {
        return super.getId();
    }

    ... etc ...
}

Use getters and setters and annotate your getter instead of the field. Jackson will automatically detect the setter based on the getter name.

public class Person {
    private String id;
    private String firstName;
    private String middleName;
    private String lastName;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

   .. etc ...
}

public class Employee extends Person {
    @JsonProperty("id")
    @Override
    public String getId() {
        return super.getId();
    }

    ... etc ...
}
两仪 2025-01-25 02:46:23

@jsonproperty的覆盖方法

   @JsonProperty("DepartmentID")
   protected String departmentId;
   @Override
   @JsonProperty("id")
   public String getId(){
     return super.getId();
   }
 // other getter methods
}

Override getter methods with @JsonProperty

   @JsonProperty("DepartmentID")
   protected String departmentId;
   @Override
   @JsonProperty("id")
   public String getId(){
     return super.getId();
   }
 // other getter methods
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文