【发布时间】:2024-08-15 11:30:01
【问题描述】:
您好,我已经阅读了所有关于此的帖子,但似乎没有任何帮助
我有一个公共 getter,它指向一个我不想序列化为 Json 的循环结构。我浏览了其他帖子并尝试了建议,但没有任何效果。
目前,我正在像这样使用 ObjectMapper @JsonIgnore 和 @JsonAutoDetect:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
public class Bah {
@JsonIgnore
public String getFoo() { return foo; }
但是,getter 仍然被序列化到我的 Json 结构中。但是当我将 getFoo 重命名为没有 get 的东西时(例如 foo())它可以工作,但是“public getX()”似乎覆盖了@JsonIgnore
我错过了什么?我敢肯定它有些愚蠢
谢谢 彼得
【问题讨论】:
-
如果你删除
@JsonAutoDetect会发生什么? -
删除 JsonAutoDetect 无效。 Jackson 仍在尝试序列化 public getter。
-
有趣的是,当我尝试制作一个独立的测试用例时,它按预期工作。所以我发布的示例可能有效。我的实际课程有些特别/不同。我的班级也有这样的 XML 注释:@XmlAccessorType(XmlAccessType.FIELD)、@XmlRootElement(name = "foo")、@XmlType(propOrder = {... Jackson 会不会和 javax.xml 打架?
-
啊,所以你混合了 XML 和 JSON 注释......对不起,帮不上那个忙,我只做 JSON 和 JSON......
标签: java json serialization jackson