Javascript JS:将具有关键帧的二维对象转换为转置csv

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

我有一个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
    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或反向代理压缩流量)很简单,它将由浏览器自动解压缩,但客户端解压缩可能很简单
  • 如果您想提供一个附加选项