首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jackson json 出现的Infinite recurs“无限递归”有关问题

2012-04-13 
jackson json 出现的Infinite recurs“无限递归”问题今天写个程序用jackson序列化对象时遇到这么个问题:Jav

jackson json 出现的Infinite recurs“无限递归”问题
今天写个程序用jackson序列化对象时遇到这么个问题:

Java code
class NodeBean{    private Integer nodeId;    private String nodeName;    private NodeBean parentNode;    private List<NodeBean> children;    // getter setter...}


用hibernate读出来之后,用jackson 序列化这个对象,

Java code
ObjectMapper m = new ObjectMapper();String json = m.writeValueAsString(value);


出现这么个问题,
Java code
org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)


就是jackson 在序列化对象为json的时候,解析NodeBean对象的parentNode和children属性时又回递归回来了。。。

这个问题咋解决?


[解决办法]
有一种解决你说的“无限递归”的方法,去掉parentNode和children这两个属性:
在类上用 @JsonAutoDetect(JsonMethod.NONE)
属性上用 @JsonProperty
没有加 @JsonProperty的就隐藏了

不过这样的话parentNode和children这两个属性都不能被转换。不知道是否符合你的需求

热点排行