考虑以下课程:
private static class Widget {
@JsonProperty
private String id = "ID";
@JsonIgnore
private String jsonIgnored = "JSON_IGNORED";
private String noAnnotation = "NO_ANNOTATION";
}
如果我使用Jackson对其进行序列化,我将最终得到这个字符串:
{"id":"ID"}
具有@JsonIgnore
的属性与没有注释的属性之间有什么区别?
答案 0 :(得分:3)
Jackson不会对@JsonIgnore带注释的属性/方法进行序列化/反序列化。虽然未注释将是。
这里的问题是杰克逊经常寻找吸气剂,而你没有指明任何吸气剂。所以这就是为什么它只序列化@JsonProperty注释属性。
如果你为3个属性实现3个getter,你的json将如下所示:
{
"id":"ID",
"noAnnotation":"NO_ANNOTATION"
}