更新一下 如果你的数据时用hibernate读出来的,有时候是你想要的那个类的一个动态代理子类,这时会多出很多属性,
这时可以用
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object source, String name, Object value) {
// 只转换我要的属性
if (name.equals("funcId") || name.equals("funcName") || name.equals("funcCode")) {
return false;
} else {
return true;
}
}
});
JSONArray jsonArray = JSONArray.fromObject(allFuncs, config);
-------------------------------------------------------------------------------------------------
大意是你在Hibernate中出现了递归调用(姑且就叫做递归- -!)导致JSON无法解析你查询出来的数据,详细原因参考网上其他高手的博客,我这里只是详细介绍一下如何在ExtHelper中统一处理这种错误.
关于ExtHelper的使用,可以参考我在DojoChina上发表的一篇文章,地址http://www.dojochina.com/index.php?q=node/1306
在需要获取JSON的地方加入JSON过滤器,用于过滤一些容易产生递归的参数写法如下
List<Department> list = idepartmentBiz.findAll();//获取数据
//自定义JsonConfig用于过滤Hibernate配置文件所产生的递归数据
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object source, String name, Object value) {
//配置你可能出现递归的属性
if (name.equals("posts") || name.equals("hrmIndagates")
|| name.equals("hrmPlans")) {
return true;
} else {
return false;
}
}
});
//调用ExtHelper将你的JSONConfig传递过去
String json=ExtHelper.getJsonFromList(list, config);
在ExtHelper中加入一个方法如下
/**
* 通过自定义confi生成JSON数据
* @param beanList 包含bean对象的集合
* @param config JSONObject的配置文件
* @return
*/
public static String getJsonFromList(List beanList,JsonConfig config){
TotalJson total=new TotalJson();
total.setItems(beanList);
total.setResults(beanList.size());
JSONObject JsonObject=JSONObject.fromObject(total, config);
return JsonObject.toString();
}
这样我们就又可以方便的调用ExtHelper生成我们所需要的JSON数据了.
分享到:
- 2009-09-19 17:27
- 浏览 1981
- 评论(0)
- 论坛回复 / 浏览 (0 / 2387)
- 查看更多
相关推荐
如果需要解析的数据间存在级联关系,而互相嵌套引用,在hibernate中极容易嵌套而抛出net.sf.json.JSONException: There is a cycle in the hierarchy异常。
并且对Dao和Service进行了封装,内含.jar包,并且解决了一对多双向关联的could not initialize proxy - no Session错误,同时解决了……invoked on net.sf.json.JSONException: There is a cycle in the hierarchy!...
Memory Hierarchy is a design strategy implemented to bridge the gap between the Central Processing Unit (CPU) and the various types of memory, which have differing speed, capacity, and cost ...
解决这个启动 View Hierarchy时的这个bug: hierarchy viewer unable to debug device
Test of consistency is critical for the AHP methodology. When a pairwise comparison matrix (PCM) fails the consistency test, the decision maker (DM) needs to make revisions. The state of the art ...
the best way to understand how computers work is to build one from scratch, and this textbook leads students through twelve chapters and projects that gradually build a basic hardware platform and a ...
### Android工具Hierarchy Viewer命令详解 #### 一、概述 Hierarchy Viewer是Android SDK中自带的一款强大的UI设计与检测工具。它位于Android SDK的`tools`目录下,文件名为`hierarchyviewer.bat`。对于Android...
在Unity游戏引擎中,"Hierarchy面板管理插件"是用来增强Unity内置Hierarchy面板功能的重要工具,目的是提高场景管理和编辑效率。本压缩包包含了两个这样的插件:Hierarchy PRO和QHierarchy。 Hierarchy PRO是一个...
* updated a polygon object: now the polygon toolbar is displayed not near to the object, but in the main toolbar and in ribbon; polygon modes are changed, new modes allow editing and adding curves > ...
sql server 2014 JSON解析到表函数 CREATE FUNCTION [dbo].[parseJSON]( @JSON NVARCHAR(MAX)) RETURNS @hierarchy TABLE ( element_id INT IDENTITY(1, 1) NOT NULL, ...
1. **`OPENJSON` 函数**:用于将 JSON 数据转换为表格形式。 2. **`FOR JSON` 子句**:用于将查询结果格式化为 JSON 输出。 3. **`JSON_VALUE` 和 `JSON_QUERY` 函数**:用于从 JSON 数据中提取特定值或子文档。 ...
Even when the actual handling differs, there is still some commonality. Hierarchical state machine design captures the commonality by organizing the states as a hierarchy. The states at the higher ...
### SAP BW Hierarchy Extractor:从SAP R3系统抽取自定义层级至BW系统的架构 #### 业务场景 在很多企业环境中,管理者需要能够访问其下属员工所负责的数据。尽管SAP Business Warehouse (BW)提供了丰富的业务内容...
An intent lock indicates that SQL Server wants to acquire a shared (S) lock or exclusive (X) lock on some of the resources lower down in the hierarchy. For example, a shared intent lock placed at the ...
这个接口通常包含你要暴露给客户端调用的方法。 3. **实现服务接口**:创建一个实现了上述接口的类,这个类将处理实际的业务逻辑。 4. **配置CXF**:创建一个CXF的`Server`实例,通过配置文件(如XML)或程序化...