包含 JSON 数据的数据表
DataTable with JSON data
我正在尝试使用 DataTable 创建 table,但很难让 DataTable 加载 JSON 对象。
function getData() {
var request = new XMLHttpRequest();
var json = "link-to-my-json-object";
// Get JSON file
request.onload = function() {
if ( request.readyState === 4 && request.status === 200 ) {
var JSONObject = JSON.parse(request.responseText);
createTable(JSONObject);
} else if(request.status == 400) { console.log("Error", request.status);}
};
request.open("GET", json, true);
request.send();
}
正在通过 XMLHttpRequest() 请求请求 JSON 文件。
JSON 对象的简短示例:
{
"meta": {
"version": 1,
"type": "test"
},
"reports": [
{
"report-metadata": {
"timestamp": 1528235303.721987,
"from-ip": "0.0.0.0"
},
//and so on...
目前仅尝试显示数据表中的 meta 部分 table:
function createTable(jsonData){
$(document).ready(function(){
$('#table').dataTable({
data: jsonData,
columns: [
{ data: 'meta.type' },
{ data: 'meta.version' }
]
});
});
}
index.html部分:
<table id="table" class="display" style="width:100%"></table>
在 运行 时只得到 table 中没有可用数据,我显然遗漏了一些东西。
用于初始化数据的 "data" 属性 Table 需要一个列表(每个元素代表一行)。修改您的 ajax 响应,使每一行都是 jsonData 列表中的一个元素。我还在所有 JSON 选项周围添加了引号。
var jsonData = [
{ "meta": { "version": 1, "type": "test" } }
];
$('#table').DataTable({
"data": jsonData,
"columns": [
{ "data": "meta.type" },
{ "data": "meta.version" }
]
});
https://datatables.net/reference/option/data
由于您想通过 ajax 加载数据,您应该查看 DataTables API 中内置的 ajax 选项。 https://datatables.net/manual/ajax
我正在尝试使用 DataTable 创建 table,但很难让 DataTable 加载 JSON 对象。
function getData() {
var request = new XMLHttpRequest();
var json = "link-to-my-json-object";
// Get JSON file
request.onload = function() {
if ( request.readyState === 4 && request.status === 200 ) {
var JSONObject = JSON.parse(request.responseText);
createTable(JSONObject);
} else if(request.status == 400) { console.log("Error", request.status);}
};
request.open("GET", json, true);
request.send();
}
正在通过 XMLHttpRequest() 请求请求 JSON 文件。
JSON 对象的简短示例:
{
"meta": {
"version": 1,
"type": "test"
},
"reports": [
{
"report-metadata": {
"timestamp": 1528235303.721987,
"from-ip": "0.0.0.0"
},
//and so on...
目前仅尝试显示数据表中的 meta 部分 table:
function createTable(jsonData){
$(document).ready(function(){
$('#table').dataTable({
data: jsonData,
columns: [
{ data: 'meta.type' },
{ data: 'meta.version' }
]
});
});
}
index.html部分:
<table id="table" class="display" style="width:100%"></table>
在 运行 时只得到 table 中没有可用数据,我显然遗漏了一些东西。
用于初始化数据的 "data" 属性 Table 需要一个列表(每个元素代表一行)。修改您的 ajax 响应,使每一行都是 jsonData 列表中的一个元素。我还在所有 JSON 选项周围添加了引号。
var jsonData = [
{ "meta": { "version": 1, "type": "test" } }
];
$('#table').DataTable({
"data": jsonData,
"columns": [
{ "data": "meta.type" },
{ "data": "meta.version" }
]
});
https://datatables.net/reference/option/data
由于您想通过 ajax 加载数据,您应该查看 DataTables API 中内置的 ajax 选项。 https://datatables.net/manual/ajax