2013-10-01 2 views
0

Я получаю ответ JSON от моего сервиса. После учебника я создал ответ для привязки данных в datatables jquery plugin.jQuery datatables plugin databinding со строкой

стороны клиента код:

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'] 

Но при связывании этих данных в таблицы, он выдает ошибку. Если я скопирую этот косольный вывод в 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); 

Есть ли альтернатива в моей стороне сервера код, чтобы отправить ответ как объект массива в плагин DataTables.

ответ

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("]"); 

Приведенный выше код не тестировался. Но надеюсь, что вы получите эту идею.

Documentation link

+0

Спасибо за ответ bhb. Проблема здесь, когда я использую это в контексте String, он отправляет ответ как сам String. Но я должен использовать JSONArray и отправить ответ. –

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); 

Единственное, что Thats беспокоит меня есть, это так глупо код, который нужно создать новый массив каждый раз, когда в моем цикле. И добавление этих массивов в мой основной объект Array. Должна быть какая-то работа, чтобы сделать ее простой. Пожалуйста, предложите некоторую эффективную методологию.

Смежные вопросы