Convert JSON array of objects to CSV
⟐ DataConvert JSON array to CSV
$ echo "[{"name":"Alice","role":"admin"},{"name":"Bob","role":"edito..." | json-to-csv (input) => {
try {
const data = JSON.parse(input);
if (!Array.isArray(data) || data.length === 0)
return "Error: expected non-empty JSON array";
const headers = [...new Set(data.flatMap(Object.keys))];
const esc = (v) => {
const s = String(v ?? "");
return /[,"\n]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s;
};
return [
headers.map(esc).join(","),
...data.map((row) => headers.map((h) => esc(row[h])).join(",")),
].join("\n");
} catch (e) {
return `Error: ${e.message}`;
}
}