pipr.tools

json-to-csv

Convert JSON array of objects to CSV

⟐ Data

Try it

stdin0 chars
stdout0 chars

Example

Convert JSON array to CSV

Usage
$ echo "[{"name":"Alice","role":"admin"},{"name":"Bob","role":"edito..." | json-to-csv
View source
(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}`;
      }
    }

Suggested Pipelines

Related Tools