LocalTools All tools →

JSON ↔ CSV Converter

Convert JSON to CSV or CSV to JSON instantly. Handles nested arrays — like GST returns — by expanding them into flat rows. Upload JSON, CSV or Excel files. Nothing leaves your browser.

1. Paste or upload your data

Drop a file here, or click to browse Supports .json, .csv, .txt, .xlsx, .xls You can also paste directly into the box below

Input

Output

How to use this converter

Paste your data into the input box, drop a file onto the page, or click the upload area to pick a file. Then click JSON → CSV or CSV / Excel → JSON. You can copy the result or download it as a file.

Handling nested JSON like GST returns

Most GST return JSON files (GSTR-1, GSTR-2, e-invoice) have a deeply nested structure: a b2b array containing invoices, each of which contains an itms array, each of which contains item details. Flattening that as dot-notation produces unusable output.

This tool detects every array-of-objects path in your JSON and shows them in the Expand nested array dropdown. Pick the level you want — usually the deepest one — and each element becomes a CSV row with all the parent fields copied into it.

For example, expanding b2b[].inv[].itms[] on a GSTR-1 file produces one row per line item, with the GSTIN, filing period, counterparty GSTIN, invoice number, invoice date, invoice value and item tax details all on the same row.

Uploading Excel files

The upload accepts .xlsx and .xls. The first worksheet is read and converted. You can then export the result as JSON.

CSV dialect

Standard RFC 4180 with comma delimiter by default. Values containing the delimiter, quotes, or newlines are wrapped in quotes with internal quotes doubled. Change the delimiter from the dropdown if you need semicolon, tab or pipe-separated output.

Common questions

Can this handle nested JSON like GST returns?

Yes. Nested arrays of objects are detected automatically. You can pick which array to expand, and each item becomes a row with all parent fields copied in.

Can I upload an Excel file?

Yes. Upload .xlsx or .xls and the first sheet is converted. You can then export as JSON or CSV.

Is my data uploaded anywhere?

No. Conversion happens entirely in your browser. Nothing is sent to a server.

What if my JSON is just an array of flat objects?

It converts directly to CSV, one row per object. No expansion needed.

Why do some columns have dots in their names?

Dot notation represents nested objects that were flattened, for example itm_det.txval. It keeps the column name readable while preserving the hierarchy.

Related tools