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.

nameagecity
John30NYC
Jane25LA
[
  { "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.

nameaddress.streetaddress.city
John123 Main StNYC
[
  {
    "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.

nametags[0]tags[1]
Johndeveloperdesigner
[
  { "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 ValueConverted ToType
123123number
45.6745.67number
truetrueboolean
2024-01-15"2024-01-15T00:00:00.000Z"ISO date
(empty)nullnull

Type Inference ON

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

Type Inference OFF

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

Examples

Contact List

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

Product Catalog

idnamepricecategory.maininStock
1Laptop999.99Electronicstrue
[
  {
    "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.