Java Jackson@JsonIgnore改变了语义?

Java Jackson@JsonIgnore改变了语义?,java,json,jackson,Java,Json,Jackson,我们刚刚升级了一些maven依赖项,触发了Jackson从1.7.x到1.9.x的更新 我们在setter方法上注释@JsonIgnore,这些方法不应该从客户端设置。例如:对象的所有者(应通过身份验证主体设置),等等 在我们看来,这个注释的语义已经改变了,这可能吗?现在,该字段在所有情况下都被jsonignored,而不仅仅是在设置时 是这样吗?在1.9中是否有一种替代方法来实现仅忽略集 谢谢! r、 好的,我想我在javadoc中找到并明确提到了这个问题。(杰克逊的文档不容易阅读) 此外,从

我们刚刚升级了一些maven依赖项,触发了Jackson从1.7.x到1.9.x的更新

我们在setter方法上注释@JsonIgnore,这些方法不应该从客户端设置。例如:对象的所有者(应通过身份验证主体设置),等等

在我们看来,这个注释的语义已经改变了,这可能吗?现在,该字段在所有情况下都被jsonignored,而不仅仅是在设置时

是这样吗?在1.9中是否有一种替代方法来实现仅忽略集

谢谢!
r、

好的,我想我在javadoc中找到并明确提到了这个问题。(杰克逊的文档不容易阅读)

此外,从Jackson 1.9开始,如果这是与属性相关联的唯一注释,它还将导致忽略整个属性:也就是说,如果setter有此注释而getter没有注释,那么getter也将被有效忽略。不同的访问者仍然可以使用不同的注释;所以,如果只忽略“getter”,那么其他访问器(setter或field)将需要显式注释来防止ignoral(通常是JsonProperty)


对的这是1.9中的巨大变化(事后看来,可能应该等到2.0)。为了实现您想要的(“拆分访问器”),您确实需要在getter上添加显式的
@JsonProperty
——默认情况下,如果只找到一个相关的注释,它将应用于“full”属性的所有部分。您是在字段上添加@JsonProperty注释还是在getter上添加@JsonProperty注释?我是在Setter上添加它。这将阻止在1.7.x中的反序列化过程中对其进行设置