如何从数据表中的嵌套数组中获取数据?
How to get data from nested array in DataTables?
我曾经以这种格式从 json 文件下载数据到我的 DataTables table:
{
"data": [
["n/a","668","01.11.2021 14:16:20", ... ],
["n/a","670","05.11.2021 23:23:54", ...]
]
}
...
"ajax": "first.json",
columns: [
{ data: 0 },
{ data: 1 }
...
一切都很好
但是现在我的 json 的格式被改变了:
{
"data": {
"deals": [["n/a", "718", "30/11/2021 21:46:14"], ["", "718", "30/11/2021 21:46:14"], ... ],
"stops": [["07/10/2021 21:48:28", "BTCUSDT"], ["07/10/2021 21:48:28", "BTCUSDT"], ... ]
}
}
然后我尝试获取这样的数据并得到“table 中没有可用数据”:
...
"ajax": "first.json",
columns: [
{ data: 'deals.0' },
{ data: 'deals.1' }
...
如何从 json 的新格式获取数据到我的 table?
这是您的新 JSON 结构,由 URL:
提供
{
"data": {
"deals": [
["n/a", "718", "30/11/2021 21:46:14"],
["", "718", "30/11/2021 21:46:14"]
],
"stops": [
["07/10/2021 21:48:28", "BTCUSDT"],
["07/10/2021 21:48:28", "BTCUSDT"]
]
}
}
在此结构中,交易数据的位置是 data.deals
。这个位置指向一个数组数组,这就是DataTables需要的(或者对象数组)。
(这意味着 table 将只能访问 deals
数据,因为 stops
数据完全位于单独的位置。但我假设您只想要deals
数据以匹配您的原始示例。)
因此您需要使用 DataTables dataSrc
选项来告诉 DataTables 在您的新 JSON:
中查找的位置
<table id="example" class="display" style="width:100%"></table>
和:
$(document).ready(function() {
$('#example').DataTable( {
ajax: {
method: "GET",
url: "first.json", // or whatever URL you want to use
dataSrc: "data.deals"
},
"columns": [
{ "title": "Col 1" },
{ "title": "Col 2" },
{ "title": "Col 3" }
]
} );
} );
因为每一行数据都是一个数组,所以您不需要在 columns
中指定特定的数组索引 - DataTables 将为您遍历每一行数组。
结果是:
我曾经以这种格式从 json 文件下载数据到我的 DataTables table:
{
"data": [
["n/a","668","01.11.2021 14:16:20", ... ],
["n/a","670","05.11.2021 23:23:54", ...]
]
}
...
"ajax": "first.json",
columns: [
{ data: 0 },
{ data: 1 }
...
一切都很好
但是现在我的 json 的格式被改变了:
{
"data": {
"deals": [["n/a", "718", "30/11/2021 21:46:14"], ["", "718", "30/11/2021 21:46:14"], ... ],
"stops": [["07/10/2021 21:48:28", "BTCUSDT"], ["07/10/2021 21:48:28", "BTCUSDT"], ... ]
}
}
然后我尝试获取这样的数据并得到“table 中没有可用数据”:
...
"ajax": "first.json",
columns: [
{ data: 'deals.0' },
{ data: 'deals.1' }
...
如何从 json 的新格式获取数据到我的 table?
这是您的新 JSON 结构,由 URL:
提供{
"data": {
"deals": [
["n/a", "718", "30/11/2021 21:46:14"],
["", "718", "30/11/2021 21:46:14"]
],
"stops": [
["07/10/2021 21:48:28", "BTCUSDT"],
["07/10/2021 21:48:28", "BTCUSDT"]
]
}
}
在此结构中,交易数据的位置是 data.deals
。这个位置指向一个数组数组,这就是DataTables需要的(或者对象数组)。
(这意味着 table 将只能访问 deals
数据,因为 stops
数据完全位于单独的位置。但我假设您只想要deals
数据以匹配您的原始示例。)
因此您需要使用 DataTables dataSrc
选项来告诉 DataTables 在您的新 JSON:
<table id="example" class="display" style="width:100%"></table>
和:
$(document).ready(function() {
$('#example').DataTable( {
ajax: {
method: "GET",
url: "first.json", // or whatever URL you want to use
dataSrc: "data.deals"
},
"columns": [
{ "title": "Col 1" },
{ "title": "Col 2" },
{ "title": "Col 3" }
]
} );
} );
因为每一行数据都是一个数组,所以您不需要在 columns
中指定特定的数组索引 - DataTables 将为您遍历每一行数组。
结果是: