如何在DataTables中获取JSON返回的嵌套数组结构数据?
DataTables 适配新JSON结构的配置方法
错误原因
你之前的写法触发无数据提示的核心问题是:DataTables 默认会将接口返回值顶层的 data 字段作为表格的行数据源,要求该字段必须是可遍历的数组。调整后的JSON结构里,顶层data变成了包含deals、stops两个子数组的对象,没有可直接遍历的行集合,因此不是列映射配置的问题,是数据源根路径配置错误。
解决方法
仅渲染单组数据(推荐)
如果你只需要加载deals数组的内容到表格,只需要在ajax配置中新增dataSrc属性,指定行数据的读取路径即可,列配置可以沿用原来的索引写法:
... "ajax": { "url": "first.json", "dataSrc": "data.deals" }, columns: [ { data: 0 }, // 对应deals中每一行的第一个字段 { data: 1 }, // 对应deals中每一行的第二个字段 // 剩余列按数组索引依次配置即可 ] ...
如果需要切换展示stops数组的内容,只需要把dataSrc的值修改为data.stops即可。
需要同时处理两组数据
如果需要对deals和stops的数据做合并、过滤等处理后再渲染,可以用dataFilter回调自定义处理返回数据:
... "ajax": { "url": "first.json", "dataFilter": function(res) { const jsonData = JSON.parse(res); // 示例:合并deals和stops数组后返回,可根据业务需求调整处理逻辑 return [...jsonData.data.deals, ...jsonData.data.stops]; } }, columns: [ // 按处理后的行数据结构配置对应列映射即可 ] ...
内容的提问来源于stack exchange,提问作者Barney Gumble
相关产品推荐
相关产品推荐

