无法将JSON响应从grails控制器发送到jQuery数据表

无法将JSON响应从grails控制器发送到jQuery数据表,json,grails,jquery-datatables,Json,Grails,Jquery Datatables,我一直试图从grails控制器发送JSON响应以显示在jQuery数据表(V1.9)中,但得到的响应为空 这是我的控制器:- def breakHierarchy = { logger.info("breakHierarchy begins here"); userObject = session.myBeanU; userLoggedIn = userStatus.checkUserLoggedIn(userObject); ArrayList<Hie

我一直试图从grails控制器发送JSON响应以显示在jQuery数据表(V1.9)中,但得到的响应为空

这是我的控制器:-

def breakHierarchy = 
{
    logger.info("breakHierarchy begins here");
    userObject = session.myBeanU;
    userLoggedIn = userStatus.checkUserLoggedIn(userObject);

    ArrayList<HierarchyBreakBean> mappingList;
    JsonObject jsonResponse;

    if(userLoggedIn) {
        def hierarchyBreakInstance = new HierarchyBreak(params);                        
        String[] divisionList = params.searsDivNumber;
        String[] lineList = params.searsLineNumber;
        String[] sublineList = params.searsSubLineNumber;
        String[] classList = params.searsClass;

        try {
            mappingList = hierarchyBreakService.searchHierarchy(divisionList, lineList, sublineList, classList);
            jsonResponse = hierarchyBreakService.loadData(request, response, mappingList);
        } catch(Exception ex){
            logger.info("Exception in breakHierarchy: ");
            ex.printStackTrace();
            hierarchyBreakInstance.errors.reject(message(code: ex.toString()));
            render(view: "hierarchyBreak", model: [hierarchyBreakInstance: hierarchyBreakInstance]);
            return;
        }
    } else {
        redirect(action: loginError);
    }       

    return;
}
数据表在“处理”栏中显示为空。
谁能告诉我我在这里错过了什么?任何帮助都将不胜感激。谢谢

您的操作对您创建的JSON对象不起任何作用。使用
render data
或返回json对象作为操作的返回值:

 mappingList = hierarchyBreakService.searchHierarchy(divisionList, lineList, sublineList, classList);
 jsonResponse = hierarchyBreakService.loadData(request, response, mappingList);
 render jsonResponse

此外,您的服务方法也可以使用JavaISH。使用JSON构建器会将复杂性降低50%

在JS控制台中应该会有一些错误我没有在控制器中看到
呈现jsonResponse
@injecteer我的JS控制台是clean@codehx我需要使用render向JS发送jsonResponse吗?它不是通过写入输出流直接发送的吗?对不起,我是Grails新手。我用Java编写了相同的代码,并通过Spring控制器发送响应,结果成功了。但是,我无法使用Grails发送响应。我使用render jsonResponse,它给了我以下JS错误:-Datatables警告:无法解析来自服务器的JSON数据。这是由JSON格式错误引起的。我还将render jsonResponse用作JSON,但它随后抛出了错误java.lang.UnsupportedOperationException:JsonObject您能帮我一下吗!调试您的JS代码,查看
响应的确切外观。谢谢!我得到了它。由于其他错误,我的JSON被错误构造。我现在解决了。
var myTable = null;

$("#searchButton").click(function(){    
    var url = appcontextPath + "/login/breakHierarchy";

    $("#row_header").show();
    myTable = $("#mappingTable").dataTable({"bServerSide": true,
                                            "bProcessing": true,
                                            "sAjaxSource": url,
                                            "sPaginationType": "full_numbers",
                                            "bJQueryUI": true, 
                                            "bDestroy": true,
                                            "aaSorting": [[4,'asc']],
                                            "bFilter": false,                                   
              "aoColumnDefs": [{"sWidth": "20%", "aTargets": [1,2,3,4,5], "sClass": "center"}, 
                                                             {"bSortable": false, "aTargets": [0]}]
    });
});
 mappingList = hierarchyBreakService.searchHierarchy(divisionList, lineList, sublineList, classList);
 jsonResponse = hierarchyBreakService.loadData(request, response, mappingList);
 render jsonResponse