使用 jQuery DataTables 通過 AJAX 載入 JSON 數據時,控制台報錯:DataTables warning: table id=example - Requested unknown parameter '0' for row 0, column 0。頁面表格顯示「No data available in table」或空白。後端使用 Struts2 JSON 插件返回數據。
DataTables 默認期望 JSON 響應的結構為:
// 默認情況(dataSrc 默認為 "data")
{
"data": [
["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800"],
...
]
}
// 或舊版本 (1.9-) 使用 aaData
{
"aaData": [ ... ]
}
若後端返回的 JSON 根節點不是 data 或 aaData(例如直接返回數組 [...]、或包裹在 tableData、rows、list 等自定義鍵下),DataTables 找不到數據源,拋出上述錯誤。
ajax.dataSrc在 DataTables 初始化選項中,通過 ajax.dataSrc 指定數據數組所在的屬性名:
$(document).ready(function () {
$('#example').DataTable({
"ajax": {
"url": "data/arrays.txt", // 或你的後端接口地址
"dataSrc": "tableData" // 關鍵:指定 JSON 中包含數據數組的屬性名
}
});
});
{
"tableData": [
["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800"],
["Garrett Winters", "Accountant", "Tokyo", "8422", "2011/07/25", "$170,750"]
]
}
則 dataSrc: "tableData" 即可正確解析。
[["A","B"],["C","D"]] → 設置 dataSrc: ""(空字符串)。{ "result": { "list": [...] } } → 可用函數形式:dataSrc: function(json) { return json.result.list; }。recordsTotal、recordsFiltered、data(或自定義節點),DataTables 會自動處理分頁信息。console.log(response) 確認數據層級。DataTables 的 ajax.dataSrc 選項專為適配非標準 JSON 結構設計。只需根據後端實際返回的鍵名設置該選項(字符串或函數),即可消除「Requested unknown parameter」錯誤,正常渲染表格。建議前後端協定統一返回格式(如始終使用 data),減少前端配置負擔。