Skip to main content
CuteJSON
↑↓ Navigate Enter Select Esc Close

JSON to CSV Converter

Turn an array of objects into a CSV file, or read a CSV export back into JSON, without either document leaving your browser.

Back to all tools

Keyboard shortcuts

These work wherever the matching action exists on this page.

Open the command palette
Ctrl/Cmd + K
Run the main action
Ctrl/Cmd + Enter
Format
Ctrl/Cmd + Shift + F
Minify
Ctrl/Cmd + Shift + M
Copy output
Ctrl/Cmd + Shift + C
Open file
Ctrl/Cmd + Shift + O
Download output
Ctrl/Cmd + S
Close this dialog
Esc
Open this dialog
F1 / ?

Local data

Everything below is stored only in this browser, on this device. None of it is ever sent anywhere, and closing this dialog is not required for that to stay true.

Unsaved drafts
Tools with remembered options

Recently opened files

    No files opened yet on this device.

    Share via link

    The content is packed into the part of the link after the # sign, which browsers never send to a server. Nothing here is uploaded to cutejson.com or anywhere else.

    Shares the first input on this page. On a tool with more than one, only that one is included.

    Nothing to share yet. Paste or type something first.

    JSON

    Load from a URL

    Fetches the URL directly from your browser and loads whatever text it returns into this pane.

    CSV

    The result appears here.

    Runs entirely in your browser. Nothing you paste is uploaded, and you can confirm that in your browser Network tab.

    About this tool

    CSV has no specification that everyone follows, so this one follows RFC 4180 and says where it departs from it. Records come out separated by a line feed rather than the carriage return and line feed pair the RFC asks for, because a browser text box rewrites that pair the moment the value is read back; input is read with either. A field is quoted only when it holds the delimiter, a quote or a line break, unless always-quote is turned on, which quotes every field instead. Going to CSV needs an array of objects, the only JSON shape that is a table, and a lone object is taken as a table of one row. A nested object or array has no CSV form at all, so its JSON text is written into the cell. Null becomes an empty field by default, which does mean a null and an empty string come out identical; it can instead be written as the literal text null or a custom marker you type in. Coming back from CSV, every field stays a string, because guessing types is what turns a postcode of 01234 into 1234 and a long identifier into a rounded number. The delimiter can be comma, semicolon, tab or pipe, chosen by hand or left on Auto, which guesses it from the first line and falls back to a comma if none of those show up. A UTF-8 byte order mark can be added to the CSV output for Excel, which otherwise misreads a UTF-8 file encoding; most other tools ignore it, so it stays off unless turned on. Formula injection protection is also off by default, because it changes the cell raw content: turned on, a value starting with an equals, plus, minus or at sign gets a leading quote so Excel or Google Sheets reads it as text instead of a formula.

    How to use

    1. Choose a direction, then paste your document into the left pane or load the sample.
    2. Set the delimiter, and say whether the first row holds the column names.
    3. Press Convert, then copy the result or download it as a file.

    Keep reading

    How to convert JSON to CSV without losing data Read the guide