【发布时间】:2015-07-01 02:13:19
【问题描述】:
我有一个返回 2D 对象的 ajax 调用,我希望能够将其转换为 .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 文件读取这个数组并根据这个数组收集数据。收集数据后,它会返回一个二维数组,内部数组是新数据。因此:
[color[red, white, blue], animal[cat,dog,mouse]]
【问题讨论】:
-
不是骗子。请参阅我上面的编辑评论。
-
能不能把php代码发过来的json数据也贴一下? (
console.log(res)) -
什么是二维对象?
-
这是原始输出(json 数据)@Kaiido
{"color":{"1":"red","2":"white","3":"blue"},"animal":{"1":"cat","2":"dog","3":"mouse"}}
标签: javascript arrays csv object