我有这个错误:
com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException: Direct self-reference leading to cycle
我一直在尝试避免导致此序列化的字段,但错误未得到纠正。 我试图将@JsonIgnore放在任何地方,包括getter,setter,属性以及每种可能的组合。
由于
- >修改
我无法导入com.google.appengine.repackaged.org.codehaus.jackson.annotate.JsonIgnoreProperties,它说“使用com.google.appengine.repackaged可能会导致您的应用在没有警告的情况下中断。”所以我导入了org.codehaus.jackson.annotate.JsonIgnoreProperties。
在重新打包的包中抛出异常(我无法导入的包)。这就是为什么我的JsonIgnore不工作了吗?
再次感谢。
答案 0 :(得分:3)
我找到了解决方案。我将整个包放在注释中。
@com.google.appengine.repackaged.org.codehaus.jackson.annotate.JsonIgnoreProperties({"users"})
public class MyClass extends MySuperClass{
....
}
这样Eclipse就不会给我这个错误:使用com.google.appengine.repackaged可能会导致您的应用无法发出警告而且一切正常。
答案 1 :(得分:0)
使用@JsonIgnoreProperties({“”,在序列化时忽略逗号分隔的字段})。 Reference
答案 2 :(得分:0)
使用com.google.appengine.repackaged通常是一个非常糟糕的主意,因为警告不会被忽略或解决。相反,你应该使用来自jackson-core-asl-.jar的org.codehaus.jackson.annotate.JsonIgnoreProperties类。
如果您使用的是maven,则可以使用
添加此库<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
否则,请从http://mavenhub.com/c/org/codehaus/jackson/annotate/JsonIgnoreProperties/jar
下载当您需要一个重新打包导入的类时,只需复制没有重新打包部分的导入(例如在本例中为org.codehaus.jackson.annotate.JsonIgnoreProperties)并将其放入谷歌中。您将找到需要添加到构建路径的正确jar,以使该类可用。