Sheets to JSON Sheets to JSON

Documentation

Everything you need to convert spreadsheets to JSON.

Getting Started

  1. Open any Google Sheet
  2. Go to Extensions > Sheets to JSON > Open Converter
  3. The sidebar will appear on the right

Output Formats

Array of Objects

Converts each row into a JSON object using the first row as keys.

name age city
John 30 NYC
Jane 25 LA
[
  { "name": "John", "age": 30, "city": "NYC" },
  { "name": "Jane", "age": 25, "city": "LA" }
]

Array of Arrays

Converts the sheet into a raw 2D array, including headers.

[
  ["name", "age", "city"],
  ["John", 30, "NYC"],
  ["Jane", 25, "LA"]
]

Nested JSON

Create nested objects and arrays using special header notation.

Dot Notation (Nested Objects)

Use . to create nested objects.

name address.street address.city
John 123 Main St NYC
[
  {
    "name": "John",
    "address": {
      "street": "123 Main St",
      "city": "NYC"
    }
  }
]

Deep Nesting

Chain multiple dots for deeper nesting: address.geo.lat

{
  "address": {
    "geo": { "lat": 40.7128, "lng": -74.006 }
  }
}

Bracket Notation (Arrays)

Use [0], [1], etc. to create arrays.

name tags[0] tags[1]
John developer designer
[
  { "name": "John", "tags": ["developer", "designer"] }
]

Arrays of Objects

Combine brackets and dots: items[0].product

{
  "items": [
    { "product": "Apple", "price": 1.5 },
    { "product": "Banana", "price": 0.75 }
  ]
}

Type Inference

When enabled, automatically converts string values to appropriate types.

Cell Value Converted To Type
123 123 number
45.67 45.67 number
true true boolean
2024-01-15 "2024-01-15T00:00:00.000Z" ISO date
(empty) null null

Type Inference ON

{ "count": 42, "active": true }

Type Inference OFF

{ "count": "42", "active": "true" }

Examples

Contact List

name email phone
John Doe john@example.com 555-1234
[
  {
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "555-1234"
  }
]

Product Catalog

id name price category.main inStock
1 Laptop 999.99 Electronics true
[
  {
    "id": 1,
    "name": "Laptop",
    "price": 999.99,
    "category": { "main": "Electronics" },
    "inStock": true
  }
]

Tips

  1. Header names become JSON keys — Keep them simple, no spaces recommended
  2. Empty cells become null — When type inference is enabled
  3. First row is always headers — In Array of Objects mode
  4. Preview first — Always preview before downloading to verify structure
  5. Array indices start at 0 — Use [0], [1], [2], etc.

FAQ

What's the maximum sheet size?

No hard limit. Processing happens in your browser, so very large sheets may take a few seconds.

Can I export multiple sheets?

Currently exports the active sheet only. Switch sheets and export separately.

Why are my numbers showing as strings?

Make sure "Infer data types" is checked before generating preview.

How do I create an empty array?

Leave all array index cells empty — they will be omitted from output.