JSON is the default data format of the web. REST APIs return JSON. Databases export it. Configuration files use it. But when you need to analyze that data, share it with colleagues, or build a report, Excel is often the destination.

Converting JSON to Excel is straightforward when your data is a flat array of objects. It gets more involved when you’re working with nested structures. This guide covers both cases, along with the fastest tools and common pitfalls to avoid.

Understanding JSON Structure Before Converting

The structure of your JSON determines how cleanly it converts to a table. There are three common patterns:

1. JSON array of objects (ideal for conversion)

This is the most common API response format and converts 1:1 to rows and columns.

[
  { "name": "Alice", "department": "Engineering", "salary": 95000 },
  { "name": "Bob", "department": "Marketing", "salary": 72000 },
  { "name": "Charlie", "department": "Design", "salary": 81000 }
]

Each object becomes a row. Each key becomes a column header.

2. Nested JSON (requires flattening)

Nested objects create a hierarchy that doesn’t map directly to a flat table.

[
  {
    "name": "Alice",
    "contact": { "email": "alice@example.com", "phone": "555-0101" },
    "salary": 95000
  }
]

A naive converter will either put [object] in the contact column, or skip it entirely. Good converters flatten nested keys into contact.email and contact.phone.

3. JSON object (not an array)

A single JSON object (without an enclosing array) converts to a single row. This is less common but valid.

Method 1: Convert JSON to Excel Using TableConvert

TableConvert’s JSON to Excel converter handles flat and moderately nested JSON without any setup.

Step 1: Open the Converter

Go to tableconvert.com/json-to-excel.

Step 2: Paste Your JSON or Upload a File

In the Data Source panel:

  • Paste: Click the input area and paste your JSON directly. Use the Example button to load a sample if you want to test the workflow first.
  • Upload: Click Upload File and select a .json file from your computer.

TableConvert validates the JSON on input and highlights syntax errors before parsing.

Step 3: Review the Table Structure

After parsing, your JSON appears in the table editor as rows and columns. Verify that:

  • Column headers match your expected JSON keys
  • Nested objects are flattened correctly (you’ll see dot-notation headers like contact.email)
  • Row count matches the number of objects in your array

Step 4: Download the Excel File

Click Download to save a .xlsx file. Open it in Excel or Google Sheets — column headers appear in row 1, data starts at row 2.

Method 2: Import JSON into Excel Using Power Query

Excel 2016 and later includes Power Query, which can import JSON natively.

  1. Open Excel and go to Data > Get Data > From File > From JSON
  2. Select your .json file and click Import
  3. The Power Query Editor opens, showing your JSON as a List or Record
  4. Click To Table in the toolbar (or right-click the column and select To Table)
  5. Click the expand columns icon (⇔) in the column header to flatten the fields
  6. Select the fields you want and click OK
  7. Click Close & Load to load the data into your spreadsheet

Power Query is powerful but has a learning curve — the column expansion step trips up many first-time users. If your JSON is nested, you may need to expand multiple columns in sequence.

How to Handle Deeply Nested JSON

Deeply nested JSON often needs preprocessing before it converts cleanly to a table. Consider this structure:

[
  {
    "order_id": "ORD-001",
    "customer": { "id": 42, "name": "Alice" },
    "items": [
      { "product": "Widget A", "qty": 2 },
      { "product": "Widget B", "qty": 1 }
    ]
  }
]

The items array contains multiple rows per order. There’s no single “correct” way to flatten this — it depends on what you need:

  • One row per order: Concatenate items into a single cell (Widget A x2, Widget B x1)
  • One row per item: Duplicate the order fields for each item row (this is “exploding” or “unnesting”)

For the one-row-per-item approach in Python:

import pandas as pd

data = [
    {
        "order_id": "ORD-001",
        "customer_name": "Alice",
        "items": [
            {"product": "Widget A", "qty": 2},
            {"product": "Widget B", "qty": 1}
        ]
    }
]

rows = []
for order in data:
    for item in order["items"]:
        rows.append({
            "order_id": order["order_id"],
            "customer_name": order["customer_name"],
            "product": item["product"],
            "qty": item["qty"]
        })

df = pd.DataFrame(rows)
df.to_excel("orders.xlsx", index=False)

For simpler nested structures (objects, not arrays of arrays), TableConvert handles the flattening automatically.

Common Errors and How to Fix Them

ErrorCauseFix
“Invalid JSON” on pasteTrailing comma, single quotes, unquoted keysValidate JSON at jsonlint.com before converting
Numbers show as scientific notation (1.23E+10)Excel auto-formats large numbersFormat column as Number or Text after import
Unicode characters display as ?Encoding mismatchEnsure your JSON file is saved as UTF-8
Empty columns for some keysInconsistent keys across objectsNormalize JSON so all objects have the same keys
[object Object] in a cellNested object not flattenedUse Power Query expansion or Python preprocessing
Date strings not recognized as datesExcel doesn’t auto-detect ISO 8601 stringsFormat date column manually after import

Validating JSON before conversion: If your JSON comes from an API or a file that may have been hand-edited, run it through a validator first. The most common issue is trailing commas (valid in JavaScript but not in JSON) and single-quoted strings.

JSON to Excel vs CSV to Excel

If you have a choice of export format, prefer CSV over JSON for tabular data. CSV converts to Excel with no parsing complexity, and virtually every tool supports it directly.

Use JSON when:

  • The data comes from an API that only returns JSON
  • The data has nested structures that you want to preserve before deciding on a final table schema
  • You’re working with a developer who provides JSON exports

Start Converting

Paste your JSON into TableConvert’s JSON to Excel converter for an instant conversion — no sign-up required. For complex nested structures or batch processing, the Python approach gives you full control over the output schema.