Tools

Word CounterReadability CheckerKeyword DensityWriting Pattern IndicatorLong-Tail Keyword IdeasSERP Snippet PreviewMeta Tag GeneratorURL Slug GeneratorRobots.txt GeneratorCore Web Vitals CheckerImage CompressorHTML MinifierCSS MinifierJavaScript MinifierVideo & Image SpecsQR Code GeneratorMerge PDFSplit PDFRotate PDFDelete PDF PagesRearrange PDF PagesExtract PDF PagesCrop PDFJPG to PDFPNG to PDFPDF to JPGPDF to PNGResize ImageCrop ImageImage ConverterWebP to JPGHEIC to JPGProfile Photo MakerImage to Text (OCR)MOV to MP4MKV to MP4WebM to MP4AVI to MP4MP4 to MP3Extract Audio from VideoTrim VideoMute VideoVideo to GIFResize VideoCompress VideoM4A to MP3WAV to MP3OGG to MP3AAC to MP3Split CSVSplit ExcelCSV to ExcelExcel to CSVExcel to XMLXML to ExcelXML to CSVXML to JSONJSON to CSV
Data & File toolsFree, no sign-upRuns in your browser

JSON to CSV

Turn a JSON array (for example an API response or export) into a CSV file. Nested objects become columns like address.city.

Or paste the content instead
—Rows
—Columns

Your converted file will appear here.

How nested JSON is flattened

Each object in the array becomes a row. Nested objects become dotted columns (address.city), lists of simple values are joined with semicolons, and lists of objects get numbered columns (items[0].name). If the top level is an object, the first array inside it, such as "results": [...], is used.

How to use the JSON to CSV

  1. Choose a JSON file, or paste JSON.
  2. Pick a separator.
  3. Click Convert and download the CSV.

Frequently asked questions

Is my file uploaded anywhere?

No. The file is read and converted by your own browser, so it never leaves your device. That makes it safe for customer lists, finances and other private data.

My JSON is a single object, not an array. Will it work?

Yes. If the object contains an array (like {"data": [...]}) that array is used; otherwise the object becomes a single row.

What if records have different fields?

Every field found in any record becomes a column, and records without that field get an empty cell.