你好我已经阅读了关于此的所有帖子,但似乎没有任何帮助
我有一个公共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
我错过了什么?我确定它的东西是愚蠢的
由于 彼得
答案 0 :(得分:1)
尝试在AUTO_DETECT_GETTERS
中停用ObjectMapper
。您可以在以下任何地方实例化ObjectMapper
:
ObjectMapper om = new ObjectMapper();
om.disable(MapperFeature.AUTO_DETECT_GETTERS);
或者,扩展ObjectMapper
并在整个项目中使用自定义:
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper() {
disable(MapperFeature.AUTO_DETECT_GETTERS);
// more project-wide config
}
}
答案 1 :(得分:0)
原来我的项目中有com.codehaus.jackson和com.fasterxml.jackson。 ObjectMapper来自fastxml,注释来自codehaus>: - P
现在一切都按预期工作了。谢谢大家的帮助。 P