JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。CSV (Comma-Separated Values) 文件是一种简单的文本格式,用于存储表格数据,每行表示一条记录,列之间用逗号分隔。
以下是一个JavaScript示例,展示如何将JSON对象数组转换为CSV字符串:
function jsonToCsv(jsonData) {
const header = Object.keys(jsonData[0]).join(',');
const rows = jsonData.map(obj => Object.values(obj).join(',')).join('\n');
return `${header}\n${rows}`;
}
// 示例数据
const data = [
{ name: "张三", age: 28, city: "北京" },
{ name: "李四", age: 34, city: "上海" },
{ name: "王五", age: 45, city: "广州" }
];
const csvData = jsonToCsv(data);
console.log(csvData);
function escapeCsvValue(value) {
if (typeof value === 'string') {
return `"${value.replace(/"/g, '""')}"`;
}
return value;
}
function jsonToCsv(jsonData) {
const header = Object.keys(jsonData[0]).map(escapeCsvValue).join(',');
const rows = jsonData.map(obj => Object.values(obj).map(escapeCsvValue).join(',')).join('\n');
return `${header}\n${rows}`;
}
function jsonToCsv(jsonData, defaultValue='') {
const header = Object.keys(jsonData[0]).map(escapeCsvValue).join(',');
const rows = jsonData.map(obj => Object.values(obj).map(value => escapeCsvValue(value ?? defaultValue)).join(',')).join('\n');
return `${header}\n${rows}`;
}
通过上述方法,可以有效将JSON数据转换为CSV格式,并处理常见的格式问题。
领取专属 10元无门槛券
手把手带您无忧上云