自身一对多关联模型的JSON转换

       最近又遇到了一个问题, 这里有一个一对多自身关联的模型
 1Class Tree
 2{
 3   private String id;
 4   private String name;
 5   private Set<tree> children = new HashSet<Tree>();
 6   public void setId(String id)
 7   {
 8         this.id = id;
 9   }

10   public String getId()
11   {
12         return this.id;
13   }

14    
15}
然后我用JSON把这个模型转换成string的时候会报错:will throw a JSONException if a cycle is found.后来去查了下JSON的API发现是我的JSON转换策略有问题。原文是这样的:
public abstract class CycleDetectionStrategy
extends Object

Base class for cycle detection in a hierarchy.
The JSON spec forbides cycles in a hierarchy and most parsers will raise and error when a cycle is detected. This class defines a contract for handling those cycles and two base implementations:

  • STRICT - will throw a JSONException if a cycle is found.
  • LENIENT - will return an empty array or null object if a cycle is found.

说的很清楚了所以必须做点修改像这样:
 1public class TreeAction extends BaseActionSupport{
 2    private static final CycleDetectionStrategy CycleDetectionStrategy = null;
 3    public String getAllTree()
 4    {
 5        JsonConfig jsonConfig=new JsonConfig();
 6        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
 7        tree = regionService.getTreeChildren("402881821a7fbf10011a7fc2d3ae0001");
 8        JSONObject array = JSONObject.fromObject(tree,jsonConfig);
 9        System.out.println("$$$$$$$$$$"+array.toString()+"$$$$$$$$$$$$$$");
10        return SUCCESS;
11    }

12}

这样修改以后转换就正常啦~~~。呵呵,HIBERNATE还有好多问题我没解决烦恼中。。。。。。


posted on 2008-06-20 22:59 Cloud kensin 阅读(1073) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(4)

随笔分类

相册

相册

搜索

最新评论