JSON Explained Simply (for Excel People)

⏱ 1 min readUpdated 28 September 2026

Almost every web service and API sends data as JSON. It looks scary but follows only a few rules.

In this article
  1. From JSON to a table
  2. Load JSON in Excel
  3. …or with Python
{
  "invoice": "INV-1042",
  "date": "2019-05-14",
  "paid": true,
  "customer": { "name": "Asha Traders", "city": "Pune" },
  "lines": [
    { "item": "Keyboard", "qty": 2, "price": 1299 },
    { "item": "Mouse", "qty": 5, "price": 599 }
  ]
}
  • { } an object: named fields (like one row with column names).
  • [ ] an array: a list (like several rows).
  • Values are text in quotes, numbers, true/false, null, or more objects/arrays.

From JSON to a table

The lines array becomes two rows; the invoice fields repeat on each. That “flattening” is exactly what Power Query does.

Load JSON in Excel

Data → Get Data → From File → From JSON (or From Web for an API URL). In Power Query, click To Table, then the expand buttons (↔) on record and list columns until you have plain columns.

…or with Python

import json, pandas as pd
data = json.load(open("invoice.json"))
df = pd.json_normalize(data, record_path="lines", meta=["invoice", "date", ["customer", "name"]])
df.to_excel("invoice.xlsx", index=False)
💡 Paste messy JSON into any JSON formatter (or VS Code → Format Document) to see its structure before you start.
✨ Ask AI about this article

Stuck on a step? Ask a question and the AI answers using this article.

Free · AI can be wrong