2 回答

TA貢獻(xiàn)1830條經(jīng)驗 獲得超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貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊
您的 JSON 數(shù)據(jù)結(jié)構(gòu)是一個數(shù)組——所有內(nèi)容都包含在一個中[...]——因此 DataTables 可以遍歷該數(shù)組以生成其表行。
data這是一個示例,其中除了列定義(和列標(biāo)題)外,所有內(nèi)容都從您的代碼中刪除:
<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>
這會生成一個如下所示的表:
這是如何運作的?
默認(rèn)情況下,DataTables 期望 JSON 結(jié)構(gòu)為以下之一:
包含其他對象數(shù)組的對象:
{ "data": [ {...},{...},... ] }
包含數(shù)組數(shù)組的對象:
{ "data": [ [...],[...],... ] }
在這兩種情況下,數(shù)組都有一個名稱(在本例中為data
)。
在您的情況下,如前所述,您的數(shù)據(jù)只是一個普通的對象數(shù)組:
[ {...}, {...},... ]
因為數(shù)組沒有名稱,所以我們需要dataSrc: ''
在 DataTable 定義中使用它來表示缺少名稱。
之后,您可以引用需要顯示的值,例如data: 'title'
.
對于該metadata
部分,它本身就是一個引用對象數(shù)組的標(biāo)簽:
"metadata": [ {...} ]
但是,在這種情況下,數(shù)組只包含一個對象。我們可以使用[0]
- 引用元數(shù)據(jù)數(shù)組中的第一個對象,然后我們可以訪問該對象中的值 - 例如,通過使用:data: 'metadata[0].label'
。
添加回答
舉報