2 回答

TA貢獻1830條經驗 獲得超9個贊
檢查這是否可以幫助您。
var data = {
"title": "SampleTitle",
"lang": "en-US",
"lastEdition": "2020-07-28",
"version": "1.0",
"metadata": [
{
"key": "sampleKey1",
"label": "sampleLabel1",
"values": ["sampleValue1"]
},
{
"key": "sampleKey2",
"label": "sampleLabel2",
"values": ["sampleValue2"]
}]
}
var result = { data: data.metadata[1].values[0], "defaultContent": "-" }
console.log(result);

TA貢獻1828條經驗 獲得超13個贊
您的 JSON 數據結構是一個數組——所有內容都包含在一個中[...]——因此 DataTables 可以遍歷該數組以生成其表行。
data這是一個示例,其中除了列定義(和列標題)外,所有內容都從您的代碼中刪除:
<script type="text/javascript">
$(document).ready(function() {
$('#example').DataTable({
ajax: {
// my test URL:
url: 'http://localhost:7000/sample2',
dataSrc: ''
},
"columns": [
{ title: 'Title', data: 'title' },
{ title: 'Language', data: 'lang' },
{ title: 'Key', data: 'metadata[0].key' },
{ title: 'Label', data: 'metadata[0].label' },
{ title: 'First Value', data: 'metadata[0].values[0]' }
]
} );
} );
</script>
這會生成一個如下所示的表:
這是如何運作的?
默認情況下,DataTables 期望 JSON 結構為以下之一:
包含其他對象數組的對象:
{ "data": [ {...},{...},... ] }
包含數組數組的對象:
{ "data": [ [...],[...],... ] }
在這兩種情況下,數組都有一個名稱(在本例中為data
)。
在您的情況下,如前所述,您的數據只是一個普通的對象數組:
[ {...}, {...},... ]
因為數組沒有名稱,所以我們需要dataSrc: ''
在 DataTable 定義中使用它來表示缺少名稱。
之后,您可以引用需要顯示的值,例如data: 'title'
.
對于該metadata
部分,它本身就是一個引用對象數組的標簽:
"metadata": [ {...} ]
但是,在這種情況下,數組只包含一個對象。我們可以使用[0]
- 引用元數據數組中的第一個對象,然后我們可以訪問該對象中的值 - 例如,通過使用:data: 'metadata[0].label'
。
添加回答
舉報