Every converter can dump flat rows. Nested mode is what makes the output look like the JSON your code actually wants: column headers describe the structure, and Excel2JSON builds it.
How headers become structure #
Turn on Nested objects in the options panel (available for the Objects and NDJSON layouts), then use dots and brackets in your header row:
customer.name,customer.city→"customer": {"name": …, "city": …}tags[0],tags[1]→"tags": […, …]a.b[2].c→ objects and arrays combined, as deep as you need
A sheet like this:
id customer.name customer.city tags[0] tags[1] active A-101 Alpenglow GmbH Köln retail eu TRUE
becomes:
[
{
"id": "A-101",
"customer": { "name": "Alpenglow GmbH", "city": "Köln" },
"tags": ["retail", "eu"],
"active": true
}
]
The details that keep output clean #
- Headers without dots or brackets stay ordinary flat keys; you can mix freely.
- With Skip blanks on, an empty
tags[1]cell simply shortens the array; interior gaps becomenullso positions stay honest. - A header that only looks like a path (
a..b,x[y]) is treated as a plain flat key rather than guessed at. - Key transforms apply per segment:
Customer Info.Full Namewith camelCase becomescustomerInfo.fullName.
Try it without a file: open Excel2JSON, click or try sample data, and the Orders sheet demonstrates all of this.
