我继承了以下内容:
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/