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'
。
添加回答
举报