起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3734|回复: 2

[结贴] 返回JSONObject [] 报错

[复制链接]

150

主题

599

帖子

1205

积分

金牌会员

Rank: 6Rank: 6

积分
1205
QQ
发表于 2017-6-19 18:07:21 | 显示全部楼层 |阅读模式
build version : 5.3.6.5569
build time : 2016.10.21 19:17:28


com.justep.exception.BusinessException: 编码: JUSTEP150087; 提示: 不支持数据类型"[Lcom.alibaba.fastjson.JSONObject;@1a22076", class "class [Lcom.alibaba.fastjson.JSONObject;"
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.transform.ResultTransform.transformByJson(Unknown Source)
        at com.justep.system.transform.ResultTransform.transform(Unknown Source)
        at com.justep.system.transform.ResponseTransform.transform(Unknown Source)
        at com.justep.system.action.Engine.translateResult(Unknown Source)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)


代码如下:
public static JSONObject[] getColumns(String tableName){
                JSONObject object = null;
                JSONObject[] arrObject = null;
                String userID = ContextHelper.getOperator().getID();
                System.out.println(userID);
                Connection conn = DBUtils.getConnection();
                PreparedStatement statement = null;
                ResultSet rs = null;
                //判断查询表是否有配置
                String sql = "select * from tabGridSet where fTabName = '"+tableName+"'";
                try {
                        System.out.println(sql);
                        statement = conn.prepareStatement(sql);
                        rs = statement.executeQuery();
                        if (rs.next()) {
                                //判断查询表是否有当前人配置
                                System.out.println(sql);
                                sql = "select * from tabGridSet where fTabName = '"+tableName+"' and fUsedType='person' and fOpeatorID = '"+userID+"'";
                                statement = conn.prepareStatement(sql);
                                rs = statement.executeQuery();
                                if (rs.next()) {
                                        System.out.println(sql);

                                        String[] columns = rs.getString("fFildName").split(",");
                                        String[] labels = rs.getString("fFileComment").split(",");
                                        arrObject = new JSONObject[columns.length];
                                        for(int i = 0 ;i<columns.length;i++){
                                                object = new  JSONObject();
                                                object.put("name", columns[i]);
                                                object.put("xid", "column"+i);
                                                object.put("label", labels[i]);
                                                object.put("searchoptions","sopt : [ 'eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni' ] ");
                                                arrObject[i]=object;
                                        }
                                }else{
                                        //判断查询表是否有当前登录机构配置
                                        sql = "select * from tabGridSet where fTabName = '"+tableName+"' and fUsedType='org' and fOpeatorID = '"+userID+"'";
                                        statement = conn.prepareStatement(sql);
                                        rs = statement.executeQuery();
                                        if (rs.next()) {
                                                System.out.println(sql);

                                                String[] columns = rs.getString("fFildName").split(",");
                                                String[] labels = rs.getString("fFileComment").split(",");
                                                arrObject = new JSONObject[columns.length];
                                                for(int i = 0 ;i<columns.length;i++){
                                                        object = new  JSONObject();
                                                        object.put("name", columns[i]);
                                                        object.put("xid", "column"+i);
                                                        object.put("label", labels[i]);
                                                        object.put("searchoptions","sopt : [ 'eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni' ] ");
                                                        arrObject[i]=object;

                                                }
                                        }
                                }
                        }
                        //如果都没有则返回length为0的数组;
                        return arrObject;
                } catch (SQLException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                }finally{
                        DBUtils.close(conn, statement, rs);
                }
               
                return null;
        }

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-20 09:49:10 | 显示全部楼层
action的返回类型支持
String,Integer,Float,Date,Time,DateTime,
Blob,Boolean,Decimal,Text,Table,
Map,Xml,List
Object

没有JSONObject[],可以用list,可以参考/BIZ/demo/actions/logic/action/invokeAction.action.m中demoReturnList
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

150

主题

599

帖子

1205

积分

金牌会员

Rank: 6Rank: 6

积分
1205
QQ
 楼主| 发表于 2017-6-21 10:42:52 | 显示全部楼层
jishuang 发表于 2017-6-20 09:49
action的返回类型支持
String,Integer,Float,Date,Time,DateTime,
Blob,Boolean,Decimal,Text,Ta ...

返回JSONArray即可。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 18:21 , Processed in 0.077727 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表