Javascript JS:将具有关键帧的二维对象转换为转置csv
我有一个ajax调用,它返回一个2D对象,我希望能够将它转换成一个Javascript JS:将具有关键帧的二维对象转换为转置csv,javascript,arrays,csv,object,Javascript,Arrays,Csv,Object,我有一个ajax调用,它返回一个2D对象,我希望能够将它转换成一个.csv文件供用户下载 php代码:echo json_encode($results) js函数现在有console.log(JSON.parse(res))以便我可以验证内容 控制台日志显示: Object {color: Object, animal: Object} color: Object 1: "red" 2: "white" 3: "blue" animal: Object
.csv
文件供用户下载
php代码:echo json_encode($results)代码>
js函数现在有console.log(JSON.parse(res))代码>以便我可以验证内容
控制台日志显示:
Object {color: Object, animal: Object}
color: Object
1: "red"
2: "white"
3: "blue"
animal: Object
1: "cat"
2: "dog"
3: "mouse
每个内部对象始终具有相同数量的元素(在本例中为3)
我想将其转换为csv,然后下载。csv的第一行将包含外部对象键(颜色、动物),csv将以如下方式结束:
"color, animal"
"red, cat"
"white, dog"
"blue, mouse"
使用我所看到的解决方案,它们将对象的连接版本附加到每一行。我需要垂直转换数据
我认为我需要逐步遍历每个内部对象(获取每个对象的第n个元素,获取每个对象的第n+1个元素等),并构建自己的csv字符串,但这似乎非常笨拙
有任何漂亮的数组/对象函数可以帮助我吗
我能够创建并下载一个.csv文件,正是这种数据转换逻辑让我陷入困境
编辑:我没有尝试将csv字符串转换为数组,也没有尝试转置2D数组(它是2D对象)
澄清在我对php文件的ajax调用中,我发送了一个从用户输入中派生的[“color”,“animal”]
数组。php文件读取该数组并基于该数组收集数据。收集数据后,它返回一个2D数组,内部数组是新数据。因此:
[color[red, white, blue], animal[cat,dog,mouse]]
根据您的问题,您说的是console.log($result),这意味着您试图通过AJAX获取它
我建议您不要在客户端JavaScript上创建CSV,从PHP代码开始创建,只需为PHP文件添加一个超链接,其中包含内容类型和内容配置的CSV创建代码,因此浏览器将直接显示“文件保存”对话框
看到这个答案了吗
简单地说就是一个超链接
<a href="admin_ajax.php">Download</a>
提及
参考
--编辑--
客户端CSV是可能的
但是我推荐服务器端CSV的原因
- CSV的大小可能更大,这可能会使客户端大小的基于JSON的循环消耗内存,并可能降低浏览器性能
- 服务器端压缩选项(如GZIP或反向代理压缩流量)很简单,它将由浏览器自动解压缩,但客户端解压缩可能很简单
- 如果您想提供PDF或富XLSX文件下载选项的附加选项,在javascript中可能不太容易
根据您的问题,您说的是console.log($result),这意味着您试图通过AJAX获取它
我建议您不要在客户端JavaScript上创建CSV,从PHP代码开始创建,只需为PHP文件添加一个超链接,其中包含内容类型和内容配置的CSV创建代码,因此浏览器将直接显示“文件保存”对话框
看到这个答案了吗
简单地说就是一个超链接
<a href="admin_ajax.php">Download</a>
提及
参考
--编辑--
客户端CSV是可能的
但是我推荐服务器端CSV的原因
- CSV的大小可能更大,这可能会使客户端大小的基于JSON的循环消耗内存,并可能降低浏览器性能
- 服务器端压缩选项(如GZIP或反向代理压缩流量)很简单,它将由浏览器自动解压缩,但客户端解压缩可能很简单
- 如果您想提供PDF或富XLSX文件下载选项的附加选项,在javascript中可能不太容易
根据您的问题,您说的是console.log($result),这意味着您试图通过AJAX获取它
我建议您不要在客户端JavaScript上创建CSV,从PHP代码开始创建,只需为PHP文件添加一个超链接,其中包含内容类型和内容配置的CSV创建代码,因此浏览器将直接显示“文件保存”对话框
看到这个答案了吗
简单地说就是一个超链接
<a href="admin_ajax.php">Download</a>
提及
参考
--编辑--
客户端CSV是可能的
但是我推荐服务器端CSV的原因
- CSV的大小可能更大,这可能会使客户端大小的基于JSON的循环消耗内存,并可能降低浏览器性能
- 服务器端压缩选项(如GZIP或反向代理压缩流量)很简单,它将由浏览器自动解压缩,但客户端解压缩可能很简单
- 如果您想提供PDF或富XLSX文件下载选项的附加选项,在javascript中可能不太容易
根据您的问题,您说的是console.log($result),这意味着您试图通过AJAX获取它
我建议您不要在客户端JavaScript上创建CSV,从PHP代码开始创建,只需为PHP文件添加一个超链接,其中包含内容类型和内容配置的CSV创建代码,因此浏览器将直接显示“文件保存”对话框
看到这个答案了吗
简单地说就是一个超链接
<a href="admin_ajax.php">Download</a>
提及
参考
--编辑--
客户端CSV是可能的
但是我推荐服务器端CSV的原因
- CSV的大小可能更大,这可能会使客户端大小的基于JSON的循环消耗内存,并可能降低浏览器性能
- 服务器端压缩选项(如GZIP或反向代理压缩流量)很简单,它将由浏览器自动解压缩,但客户端解压缩可能很简单
- 如果您想提供一个附加选项