How JSON becomes rows and columns
The converter expects an array of objects: one object per row, one key per column. Columns appear in the order their keys are first seen, and an object that lacks a key gets an empty cell.
[ { "sku": "BOLT", "bin": { "aisle": "C", "shelf": 4 } }, { "sku": "NUT", "note": "zinc, flat" } ]
sku,bin.aisle,bin.shelf,note
BOLT,C,4,
NUT,,,"zinc, flat"Nested objects are flattened into dotted names. Arrays inside a row are written as JSON text in one cell, since a CSV cell cannot hold a list. A value containing the delimiter, a quote or a line break is wrapped in double quotes, with inner quotes doubled, as RFC 4180 describes.
Choosing the delimiter
Comma is the default. Spreadsheet programs in locales that use a decimal comma usually expect a semicolon. Tab output pastes straight into a spreadsheet. Going the other way? Use CSV to JSON.