首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppEngine端点JsonMappingException -避免要序列化的字段

AppEngine端点JsonMappingException -避免要序列化的字段
EN

Stack Overflow用户
提问于 2013-10-23 21:24:44
回答 3查看 744关注 0票数 3

我有这样的错误:

代码语言:javascript
复制
 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不能工作的原因吗?

再次感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-30 23:48:24

我找到了解决办法。我将整个包放入注释中。

代码语言:javascript
复制
@com.google.appengine.repackaged.org.codehaus.jackson.annotate.JsonIgnoreProperties({"users"})
public class MyClass extends MySuperClass{
    ....
}

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

票数 3
EN

Stack Overflow用户

发布于 2013-10-24 02:57:16

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

票数 0
EN

Stack Overflow用户

发布于 2014-01-06 10:12:14

使用com.google.appengine.repackaged通常是一个非常糟糕的主意,因为警告不会被忽略或处理。相反,您应该使用来自jackson ASL-.jar的org.codehaus.jackson.annotate.JsonIgnoreProperties类。

如果您使用的是maven,则可以使用

代码语言:javascript
复制
<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,以使该类可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19552590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档