3

我有这个错误:

 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 不起作用的原因吗?

再次感谢。

4

3 回答 3

3

我找到了解决方案。我将整个包放在注释中。

@com.google.appengine.repackaged.org.codehaus.jackson.annotate.JsonIgnoreProperties({"users"})
public class MyClass extends MySuperClass{
    ....
}

这样 Eclipse 不会给我这个错误:使用 com.google.appengine.repackaged 可能会导致您的应用程序在没有警告的情况下中断,并且一切正常。

于 2013-10-30T23:48:24.923 回答
0

使用@JsonIgnoreProperties({"", 逗号分隔的字段在序列化时被忽略})。 参考

于 2013-10-24T02:57:16.000 回答
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)并将其放入 google。您将找到需要添加到构建路径以使该类可用的正确 jar。

于 2014-01-06T10:12:14.573 回答