嵌套对象数据(对象)
通过使用 columns.data
选项,DataTables 能够使用几乎任何 JSON 数据源中的数据。在最简单的情况下,它可以用于读取任意对象属性,但也可以通过使用标准的 Javascript 点分对象表示法扩展到 n 级嵌套对象/数组。在 columns.data
选项中每个点 (.
) 代表另一个对象级别。
在这个示例中,hr.position
指的是行数据源对象中的 hr
对象的 position
属性,而 contact.0
指的是 contact
数组中的第一个元素。可以使用任意数量的点来获取深度嵌套的数据。
下面的示例显示了 DataTables 从嵌套对象和数组读取列的信息,其中此示例中行数据源的结构为
{
"name": "Tiger Nixon",
"hr": {
"position": "System Architect",
"salary": "$3,120",
"start_date": "2011/04/25"
},
"contact": [
"Edinburgh",
"5421"
]
}
名称 | 职位 | 办公室 | 分机号 | 入职日期 | 工资 |
---|---|---|---|---|---|
名称 | 职位 | 办公室 | 分机号 | 入职日期 | 工资 |
- Javascript
- HTML
- CSS
- Ajax
- 服务器端脚本
- 评论
下面显示的 Javascript 用于初始化此示例中显示的表格
$('#example').DataTable({ ajax: 'data/objects_deep.txt', columns: [ { data: 'name' }, { data: 'hr.position' }, { data: 'contact.0' }, { data: 'contact.1' }, { data: 'hr.start_date' }, { data: 'hr.salary' } ], processing: true });
new DataTable('#example', { ajax: 'data/objects_deep.txt', columns: [ { data: 'name' }, { data: 'hr.position' }, { data: 'contact.0' }, { data: 'contact.1' }, { data: 'hr.start_date' }, { data: 'hr.salary' } ], processing: true });
除了以上代码,还加载了以下 Javascript 库文件以用于此示例
下面显示的 HTML 是原始的 HTML 表格元素,在它被 DataTables 增强之前
为了正确显示表格,此示例使用少量的附加 CSS,这些附加 CSS 超出了从库文件(见下文)中加载的 CSS。下面显示了所使用的附加 CSS
加载了以下 CSS 库文件,以用于此示例,以便为该表格提供样式
此表格通过 Ajax 加载数据。下面显示了已加载的最新数据。此数据将随着加载任何附加数据而自动更新。
下面显示了用于为该表格执行服务器端处理的脚本。请注意,这只是一个使用 PHP 的示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议。