java - 访问器方法是否需要 @JsonProperty 注释?

标签 java jackson

我继承了以下内容:

import com.fasterxml.jackson.annotation.JsonProperty;
public class MyClass {
  @JsonProperty("id")
  private String id;

  @JsonProperty("id")
  public String getId(){
    ...code...
  }

  @JsonProperty("id")
  public String setId(String id) {
    ...code...
  }
}

是否需要在 getter 和 setter 上重复 JsonProperty 注释,或者如果我只注释私有(private)成员,jackson 会自动处理序列化/反序列化吗?

最佳答案

在您的示例中,使用默认的 ObjectMapper 设置,在使用 Jackson 1.8 或更新版本时不需要注释。

Jackson 可以自动检测来自公共(public) getter(如“public int getValue()”)、setter(“public void setValue(int v);”)和字段(“public int value;”)的属性。 此外,只要找到一个公共(public) setter、getter 或字段,则匹配但(否则)不可见的 setter/字段也包括在内。

但是请注意,对于旧的 Jackson 版本(1.7 和更早版本)没有做第二部分,并且 setter 和 getter 都需要公开。

关于java - 访问器方法是否需要 @JsonProperty 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31381439/

相关文章:

java - 在对象上同步似乎没有同步

java - 华盛顿驾照的正则表达式模式?

java - 用Java从视频中获取帧

json - 如何从 JAX-RS 客户端提取 ObjectMapper?

java - 在 JPanel 上绘画并将其添加到 JScrollPane

java - 热向 Listview 添加多个项目 simple_list_item_1

java - 如何从具有不同字段的同一类创建两个 json 文件

java - 使用 POJO 字段名将 POJO 转换为 JsonNode

java - jackson JSON 序列化 : How to ignore a nested object when all its fields are null?

java - 将多态对象列表反序列化为对象字段