简介
在本实验中,我们将深入探索 JavaScript 编程的世界,并探讨将 JSON 数据转换为 CSV 格式的过程。通过本实验,你将学习如何使用诸如 join()、map() 和 reduce() 等内置方法,将对象数组转换为一个字符串,以便在电子表格软件中轻松读取和操作。本实验非常适合那些希望更深入了解 JavaScript 中数据操作的人。
将 JSON 转换为 CSV
要将对象数组转换为包含指定列的逗号分隔值(CSV)字符串,请使用以下函数:
const JSONtoCSV = (arr, columns, delimiter = ",") =>
[
columns.join(delimiter),
...arr.map((obj) =>
columns.reduce(
(acc, key) =>
`${acc}${!acc.length ? "" : delimiter}"${!obj[key] ? "" : obj[key]}"`,
""
)
)
].join("\n");
要使用它,请执行以下步骤:
- 打开终端/SSH 并输入
node以开始练习编码。 - 使用以下参数调用
JSONtoCSV函数:arr:要转换的对象数组。columns:一个字符串数组,指定要包含在 CSV 输出中的列。delimiter:一个可选字符串,指定要使用的分隔符(默认值为',')。
- 该函数将返回一个 CSV 字符串,其中仅包含指定的列和对象的值。
- 如果未指定分隔符,则将使用默认分隔符
','。 - 以下代码块中提供了使用该函数的示例。
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"]
); // 'a,b\n"1","2"\n"3","4"\n"6",""\n"","7"'
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"],
";"
); // 'a;b\n"1";"2"\n"3";"4"\n"6";""\n"";"7"'
总结
恭喜你!你已经完成了 JSON 转 CSV 实验。你可以在 LabEx 中练习更多实验来提升你的技能。