01 / GETTING STARTED
Paste JSON, pick your array mode, and flatten.
Jsonflat is a browser-only tool. Open the App page, paste any valid JSON into the textarea, and the table appears automatically after a brief pause. That is the whole workflow.
Quick start:
- 1. Open the App page
- Navigate to jsonflat-p1.agen2ic.ai/app. No account, no sign-up.
- 2. Paste your JSON
- Copy JSON from an API response, log file, or any text source and paste it into the input area. The flatten runs automatically after a 200 ms debounce — you do not need to click anything.
- 3. Choose your array mode
-
Index mode (default): arrays become columns named
items[0].name,items[1].name, etc. One row per record.
Explode mode: arrays become additional rows, with scalar fields duplicated across rows. Good for normalising nested lists into a flat structure. - 4. Read the coverage badges
- Every column header shows N/total — how many records carry that field. A badge reading 397/400 means three records are missing that field, visible before you scroll.
- 5. Export your data
- Download CSV — RFC 4180 with UTF-8 BOM, ready for Excel. Copy TSV — tab-separated values for pasting directly into a spreadsheet.
02 / FREQUENTLY ASKED QUESTIONS
Common questions answered honestly.
- Does Jsonflat send my JSON to a server?
- No. Every byte of JSON you paste stays in your browser. There is no server-side processing, no upload, no API call. The entire transformation happens in JavaScript running on your machine. This is not a privacy claim we make lightly — it is a structural constraint of the architecture. You can verify by opening your browser's network inspector: zero outbound requests to any server occur during flattening.
- What is the difference between Index mode and Explode mode for arrays?
-
Index mode turns each array element into a separate column. A field
tags: ["admin", "billing"]becomes two columns:tags[0]andtags[1]. The row count stays the same as the number of input records. This is best when arrays have a fixed small size and each element has a consistent meaning across records.
Explode mode turns each array element into a separate row. A record with 3 tags produces 3 rows, with scalar fields (name, role, etc.) duplicated in every row. This is useful when you need to analyse each array entry independently — for example, treating each tag as its own data point. - How do I export my flattened data?
-
Once the table is rendered, two options appear below the toolbar:
- Download CSV — produces a file conforming to RFC 4180 with a UTF-8 byte-order mark, which means Excel opens it correctly without manual encoding fiddling.
- Copy TSV — copies tab-separated values to your clipboard, ready to paste into Google Sheets, a ticket, or a comparison tool.
- What is the maximum JSON size I can paste?
-
The tool enforces two limits:
- 5 MB maximum input size — the browser cannot hold larger documents in a textarea reliably.
- 100,000 maximum rendered cells — beyond this, rendering performance degrades and the browser tab may freeze.
jqand process each batch separately. - What does the coverage badge tell me?
-
Every column header displays a badge showing N/total — the number of records that contain that field out of the total number of records. For example, if you have 400 records and the
address.citycolumn shows 397/400, three records are missing that field. This lets you spot sparse columns instantly, without scanning every cell. Coverage badges are colour-coded:- Green — full or near-full coverage (most records carry the field)
- Yellow — low coverage (the field is absent in many records)
- Red — nearly absent (few records carry the field)
- Does Jsonflat save or store my data after I close the tab?
-
No. Nothing is stored server-side, nothing is written to
localStorage(except your light/dark theme preference), and nothing is shared across devices or sessions. When you close the tab, every trace of the JSON you pasted is gone from memory. If you want to keep the result, download the CSV or copy the TSV before closing. This is by design — the tool has no accounts, no database, and no persistence layer.
03 / KNOWN LIMITATIONS
What Jsonflat does not do — stated upfront.
Every tool has boundaries. These are documented here so you do not discover them by surprise. Some are architectural constraints of a browser-only tool; others are features we have not yet built.
- No URL fetching
- Jsonflat cannot fetch a URL for you. Paste the JSON content directly into the textarea. Your browser would block cross-origin reads from JavaScript anyway — this is a platform security rule, not a product choice.
- No large-document streaming
- Documents exceeding ~5 MB or 100,000 cells are rejected with a message rather than truncated silently. There is no streaming or chunked processing mode.
- No type inference
- Values are reported exactly as JSON states them. A string that looks like a number (
"42") stays a string. We do not guess, convert, or "smart-parse" values. Use spreadsheet software for type coercion after export. - No persistence or accounts
- Jsonflat has no accounts, no history, no saved sessions, and no sync across devices. Your data vanishes when the tab closes. This is deliberate — an account system would require a server, which this product does not have.
- No automated edits or transformations
- You cannot rename columns, filter rows, sort data, or apply formulas within Jsonflat. Export the table and use spreadsheet software for post-processing.
- No API or embeddable widget
- There is no REST API, no iframe embed, no npm package, and no CLI tool. Jsonflat is a single web page. If you need programmatic flattening, tools like
jqor Python'spandas.json_normalize()may serve your use case. - No email, notifications, or alerts
- Nothing is emailed, scheduled, or sent. The tool has no email sender, no SMTP, and no notification system. We will never send you email from this product because there is no system to send it.
04 / CONTACT US
Need help with something the FAQ does not cover?
We read every message sent to this address. It reaches people who work on Jsonflat and can answer questions about the product, its limitations, or anything you discovered while using it.
Before emailing: Check the FAQ above — most common questions are answered there. If you are reporting a bug, please include the JSON you were flattening (or a representative sample) and the expected behaviour. This helps us reproduce and fix the issue faster.
jsonflat-p1@agen2ic.ai reaches people who support this product. Replies are sent to the address you write from. There is no automated ticketing system, so please be patient if a response takes a day or two.