0

我从我的服务收到 JSON 响应。按照教程,我在 datatables jquery 插件中创建了绑定数据的响应。

客户端代码:

var test_reports = jsonResp.reports;
var aDataSet = [test_reports];

$('#example').dataTable( {
    "aaData": aDataSet,
    "aoColumns": [{ "sTitle": "Tests" },
          { "sTitle": "Reports"}]
});

在控制台中,我的“test_reports”显示:

['TEST_1','1'] ['TEST_2','1']

但是在将这些数据绑定到表时,它会引发错误。如果我将此 cosole 输出复制到 aaData,它会创建表。我知道我的“test_reports”是一个字符串,这个插件需要一个值数组。使这项工作的任何想法!

提供此 json 响应的服务器端代码:

testcasesCountRS = statement.executeQuery(testcasesQuery);

            while(testcasesCountRS.next()){
                String test_name = testcasesCountRS.getString("test_name");
                String test_count = testcasesCountRS.getString("test_count");
                testResults.put(test_name, test_count);
                resBuffer.append("[\'" + test_name + "\',\'" + test_count + "\'],");
            }

resBuffer = resBuffer.deleteCharAt(resBuffer.lastIndexOf(","));

reports.put("reports", resBuffer);

我的服务器端代码中是否有任何替代方法可以将响应作为数组对象发送到数据表插件。

4

2 回答 2

0

您的服务器响应应该是一个数组数组。

[['TEST_1','1'],['TEST_2','1']]

将您的代码更改为

resBuffer.append("[");
while(testcasesCountRS.next()){
    String test_name = testcasesCountRS.getString("test_name");
    String test_count = testcasesCountRS.getString("test_count");
    testResults.put(test_name, test_count);
    resBuffer.append("[\'" + test_name + "\',\'" + test_count + "\'],");
}
resBuffer = resBuffer.deleteCharAt(resBuffer.lastIndexOf(","));
resBuffer.append("]");

上面的代码未经测试。但希望你明白这一点。

文档链接

于 2013-10-01T06:37:55.370 回答
0

我通过以下方式使其工作:

JSONArray testCaseArray = new JSONArray();
while(testcasesCountRS.next()){
                JSONArray testCase = new JSONArray();
                String test_name = testcasesCountRS.getString("test_name");
                String test_count = testcasesCountRS.getString("test_count");

                testCase.add(test_name);
                testCase.add(test_count);
                testCaseArray.add(testCase);
}

reports.put("reports", testCaseArray);

唯一困扰我的是,它的代码非常愚蠢,以至于我每次都需要在循环中创建一个新数组。并将这些数组添加到我的主 Array 对象中。应该有一些解决方法使它变得简单。请提出一些有效的方法。

于 2013-10-01T17:53:37.040 回答