JSON to CSV requires an array of objects: quick checks

TL;DR: Fix delimiter/quotes first, then convert CSV to JSON locally (no upload).

If your converter says “Input must be an array of objects”, it’s not a bug — it’s a table requirement. CSV needs rows, and rows come from array items.

What the tool expects

The typical input is: [{"name":"Alice"},{"name":"Bob"}]. Each item is a row. Each key becomes a column. If your JSON is a single object {"name":"Alice"}, there’s only one row — you can still export, but you need to wrap it in an array.

Fast shape checks

  • Starts with [ and ends with ] → likely an array.
  • Inside, items should start with { (objects), not strings or numbers.
  • If items are mixed types, you’ll get inconsistent columns.

What to do with nested fields

If objects contain nested objects (e.g. meta.role), a 1-level flattening strategy keeps CSV readable. Arrays typically become JSON strings in a single cell.

Practical checklist (fast)

If you’re stuck, use this quick checklist to narrow the problem before you try “random fixes”. Start by validating the input format (syntax first), then confirm shape expectations (array vs object, headers vs rows). Convert a small sample, inspect the output, and only then export the full result.

  • Validate: confirm the input is strict JSON/XML/CSV (no stray characters).
  • Confirm shape: arrays vs objects; headers vs row lengths; repeated tags vs arrays.
  • Test a sample: first 20–50 rows/items are enough to detect parsing issues.
  • Export: copy/download the output and re-check it in the consumer (script/spreadsheet/API).

This workflow is privacy-first by design: All processing happens locally in your browser. Files are never uploaded.

FAQ

Can I export an array of arrays? You can, but you’ll lose column names. Array of objects is safer for spreadsheets.

Should I validate before converting? Yes — validate syntax first, then convert.

Trust note: All processing happens locally in your browser. Files are never uploaded.

Privacy & Security
All processing happens locally in your browser. Files are never uploaded.