---
title: "JSON to CSV converter — free, in your browser | quario"
description: "Convert JSON to CSV in your browser. Nested objects become columns, numbers stay plain digits, and your data is never uploaded. Free, with no sign-up."
url: "https://getquario.com/tools/json-to-csv"
---

# JSON to CSV converter

Paste JSON or open a file, and download a CSV with one header row and one line per record. Nested objects become columns of their own. Your JSON never leaves this page.

orders.json issues.json invoice.json

Open file

JSON to convert

Valid JSON · 2,441 characters

Valid JSON.

Parsed and rendered on this page

**7 rows** from `$.data.orders[*]`, with **7 columns**.

File name

## Columns

Drag to reorder, or Alt and an arrow key. Select a column to rename it, change its type or hide it.

- ID Text
- Date Date
- Customer name Text
- Customer country Text
- Status Text
- Total Money
- Items List (count)

orders.csv

Download CSV Excel PDF

| ID     | Date       | Customer name        | Customer country | Status   | Total | Items |
| ------ | ---------- | -------------------- | ---------------- | -------- | ----- | ----- |
| A-1001 | 2026-09-02 | Folio & Sons         | IE               | paid     | 1440  | 3     |
| A-1002 | 2026-09-03 | Atelier Vink         | NL               | paid     | 320.5 | 1     |
| A-1003 | 2026-09-07 | Marlborough Books    | IE               | refunded | 89.99 | 2     |
| A-1004 | 2026-09-11 | Atelier Vink         | NL               | paid     | 1600  | 1     |
| A-1005 | 2026-09-15 | Papierfabriek Deckle | NL               | pending  | 275   | 2     |
| A-1006 | 2026-09-21 | Folio & Sons         | IE               | paid     | 48    | 1     |
| A-1007 | 2026-09-28 | Ledger & Co          | GB               | paid     | 712.4 | 2     |

The CSV opens with this header row, then one line per row. Numbers are plain digits, with no currency sign or thousands separator.

## Run the same conversion from your own code

Every CSV on this page comes from a quario definition: the `report.json` in the panel. It names the rows and the columns, in order. Store it with your code and render it with your data through `@quario/csv`. You get the same records from a server, a worker, or the browser.

npm install quario

- [The CSV target](https://getquario.com/docs/diving-deeper/csv-target.md)
- [The JSON to Excel converter](https://getquario.com/tools/json-to-excel.md)
- [Free to evaluate, licensed per deployment](https://getquario.com/pricing.md)

report.json export.ts

```
{
  "data": "$.data.orders[*]",
  "style": {
    "family": "sans",
    "size": 9
  },
  "detail": {
    "columns": [
      {
        "header": "ID",
        "value": "{{ @.id }}"
      },
      {
        "header": "Date",
        "value": "{{ @.date }}"
      },
      {
        "header": "Customer name",
        "value": "{{ @.customer.name }}"
      },
      {
        "header": "Customer country",
        "value": "{{ @.customer.country }}"
      },
      {
        "header": "Status",
        "value": "{{ @.status }}"
      },
      {
        "header": {
          "value": "Total",
          "style": {
            "align": "right"
          }
        },
        "value": "{{ round(@.total, 2) }}",
        "style": {
          "align": "right"
        }
      },
      {
        "header": {
          "value": "Items",
          "style": {
            "align": "right"
          }
        },
        "value": "{{ count(@.items) }}",
        "style": {
          "align": "right"
        }
      }
    ],
    "header": {
      "style": {
        "family": "mono",
        "size": 7,
        "uppercase": true,
        "color": "#6b7a82",
        "paddingBottom": 3,
        "borderBottomWidth": 0.5,
        "borderBottomStyle": "solid",
        "borderBottomColor": "#cfd8dd"
      }
    },
    "row": {
      "style": {
        "paddingTop": 2,
        "paddingBottom": 2,
        "borderBottomWidth": 0.25,
        "borderBottomStyle": "solid",
        "borderBottomColor": "#e6ecef"
      }
    }
  }
}
```

## Questions

- Is my JSON uploaded anywhere?

  No. This page reads the text you paste or the file you open, and quario renders the preview and every download right here. Nothing you paste reaches a server.

- What shape does the JSON need?

  A list of objects, either at the top level or anywhere inside, such as the `data` list of an API response. When there are several lists, you choose which one becomes the rows. The rows don't need the same keys: every key in the first 500 rows becomes a column.

- What happens to nested objects?

  An object inside a row becomes one column per field, so a `customer` object gives a Customer name column, a Customer country column, and so on. That goes one level down: the converter leaves out an object inside that one. A list inside a row, such as an order's items, becomes a column holding how many there are. You can rename, reorder, or hide any column before you download.

- Which delimiter and quoting does it use?

  A comma between fields, always, and a line break between rows. Double quotes wrap any field that holds a comma, a double quote, or a line break. A double quote inside such a field doubles, as RFC 4180 describes. The file is UTF-8, with no byte order mark.

- Do numbers stay numbers?

  Yes. Each number goes in as plain digits, such as `320.5` or `-5`. There's no currency sign or thousands separator, so a spreadsheet or a script reads it back as a number. The converter rounds money columns to two decimal places and leaves every other number as it is. Dates and true or false values arrive as your JSON has them.

- What happens to text that looks like a formula?

  A text field that starts with `=`, `+`, `-`, or `@` gets an apostrophe in front of it. A spreadsheet opening the file then shows it as text rather than running it. A number such as `-5` isn't text, and stays as it is.

- Is there a size limit?

  The preview shows the first 200 rows. The download includes every row, up to what your browser can hold in memory.

- Is it free?

  Yes, with no sign-up. To generate these files from your own application, quario is free to evaluate, and a license covers each production deployment. See [pricing](https://getquario.com/pricing.md).

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://getquario.com/"},{"@type":"ListItem","position":2,"name":"JSON to CSV","item":"https://getquario.com/tools/json-to-csv"}]}
```
