⇄LocalShift. Runs on your device
{ }

JSON to CSV

Turn nested JSON into spreadsheet-ready rows.

On-device conversion
YOUR PRIVATE WORKSPACE
0 characters
Ready when you are
Conversion options

Loading converter…

Maximum input: 5 MB. Files are processed locally; large outputs are available as downloads with a shortened preview.

THREE SIMPLE STEPS

How to use JSON to CSV

  1. Add your JSON data. Paste text or select a file from your device.
  2. Choose your options. Review the settings and select Convert.
  3. Save your result. Preview, copy, or download the output.
GOOD TO KNOW

Know your output.

CSV values stay strings to preserve leading zeros and large IDs. Nested JSON objects use dotted column names; arrays stay JSON text. Spreadsheet-safe mode prefixes potentially executable cells.

Conversion happens locally. Refreshing or closing this tab clears the workspace; downloaded files remain on your device.

WHAT THIS TOOL DOES

JSON to CSV: conversion behavior

Convert an object or an array of JSON objects into CSV locally. Nested objects become dotted column names; arrays stay JSON text, and columns include fields found across all rows.

Use this when an API response needs to become a spreadsheet. Select the records array from an API wrapper before pasting it.

ProcessingYour browser · no upload
Input → outputJSON → CSV
Input limit5 MB
Cost & accountFree · no account
  • A nested user.name property becomes a user.name column. Arrays remain JSON text in one cell rather than extra rows.
  • Null and missing values become empty cells, losing that distinction. Empty objects become {}.
  • Columns follow the union of keys across records. Collisions between dotted keys and nested paths are rejected.
  • Spreadsheet-safe mode prefixes certain formula-like text cells with an apostrophe. This changes those strings; check the destination's import settings.
REPRODUCIBLE EXAMPLE

Nested records become a flat table

Comma separator and header enabled. Arrays stay in one cell; active becomes a column even though only the second record contains it.

Input · JSON
[
  {"user":{"id":"001","name":"Alex"},"tags":["new","vip"]},
  {"user":{"id":"002","name":"Sam"},"active":true}
]
Download input
Expected output · CSV
user.id,user.name,tags,active
001,Alex,"[""new"",""vip""]",
002,Sam,,true
Download expected output

Questions about JSON to CSV

Does this expand nested arrays into rows?

No. Arrays remain serialized JSON in a cell. Reshape the input first if you need one row per array item.

Why did Excel change an ID?

CSV can contain the correct digits while Excel interprets them as numbers. Import that column as Text. A UTF-8 BOM helps with encoding, not type inference.