我有这样的错误:
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不能工作的原因吗?
再次感谢。
发布于 2013-10-30 23:48:24
我找到了解决办法。我将整个包放入注释中。
@com.google.appengine.repackaged.org.codehaus.jackson.annotate.JsonIgnoreProperties({"users"})
public class MyClass extends MySuperClass{
....
}这样,Eclipse就不会给我这个错误:使用com.google.appengine.repackaged可能会导致应用程序在没有警告的情况下中断,并且一切正常。
发布于 2013-10-24 02:57:16
使用@JsonIgnoreProperties({"",在序列化}上要忽略的逗号分隔字段)。参考文献
发布于 2014-01-06 10:12:14
使用com.google.appengine.repackaged通常是一个非常糟糕的主意,因为警告不会被忽略或处理。相反,您应该使用来自jackson 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) ),然后将它放到google中。您将找到需要添加到构建路径中的正确jar,以使该类可用。
https://stackoverflow.com/questions/19552590
复制相似问题