Free JSON Tools
Browser-based JSON utilities for developers: format, validate, beautify, minify and convert JSON to CSV. Your data stays in your browser.
Which tool for which problem
Most JSON work is one of two jobs: making a payload readable so you can find a field, and getting it into something a spreadsheet or database will accept. Use the formatter when an API hands you 40KB on one line, or when a config file is rejected with an unhelpful error. Use JSON to CSV when ops or finance needs the data and will not open a .json file.
Reading an error message properly
Parser errors point at where the parser gave up, not at where you made the mistake. A trailing comma is the usual case: {"a": 1, "b": 2,} is invalid JSON even though JavaScript object literals allow it, and Chrome and Node answer with Expected double-quoted property name in JSON at position 16. Position 16 is the closing brace, not the comma at 15; engines word it differently, so trust the offset. Other frequent causes:
- Single quotes.
{'name': 'Ada'}is a Python dict repr, not JSON. Keys and strings both need double quotes. NaNandInfinity. Python'sjson.dumpsemits them by default and strict parsers refuse them.- A byte order mark. Saved from Notepad or exported from Excel, an invisible
EF BB BFsits before the opening brace, so the parser rejects character zero of a file that seems to start with{.
If validation passes but a downstream system complains, check for duplicate keys. The grammar does not forbid them, RFC 8259 only says names should be unique, and browser parsers keep the last one, so {"id": 1, "id": 2} quietly becomes 2.
Flattening JSON into CSV without losing data
CSV is a flat grid and JSON is a tree, so conversion forces a decision about nesting. An array of flat objects maps cleanly. Anything deeper needs a rule: dot-notation column names (address.city), or the nested value serialised back to a string in the cell. Two things to check:
- Ragged keys. If object 1 has
emailand object 900 does not, the header must be the union of all keys, with blanks elsewhere. A converter that builds its header from the first object alone drops later columns in silence. - Quoting. RFC 4180 says a field containing a comma, a double quote or a line break must be wrapped in quotes and any internal quote doubled, so
He said "hi", loudlybecomes"He said ""hi"", loudly".
Delimiter and encoding
Excel splits rows on the list separator the OS reports, which is the semicolon wherever the comma is the decimal mark, so a comma-delimited file opened in Germany or France lands entirely in column A. Send those recipients semicolons, or tabs when the text holds both. Write UTF-8, and for Excel put the EF BB BF byte order mark at the front: without it Excel falls back to the system code page and é arrives as é, the signature of UTF-8 bytes read as Latin-1.
Common questions
Is my JSON uploaded anywhere? No. Both tools parse in your browser, so a response body holding bearer tokens or customer emails never leaves the machine. Open the network tab: no request fires when you click format.
Why does my file fail when it looks fine? Most often it is JSON Lines rather than JSON: one object per line, no wrapping array, no commas between records. BigQuery exports and many streaming APIs use that shape. Wrap the lines in [ ] and comma-separate them.
What size file can it handle? The limit is browser memory, not a server quota. A few megabytes format instantly; above roughly 50MB the tab can stall while the string is parsed and re-rendered, so switch to jq.
Does minifying change my data? A minifier that parses and re-serialises does more than delete whitespace. Numbers are normalised: 1.0 returns as 1, 1e3 as 1000. Keys that look like non-negative integers jump to the front in numeric order: {"b":1,"2":2,"1":3} comes back as {"1":3,"2":2,"b":1}. And 9007199254740993 is past the safe integer range for a JavaScript number, so it returns as 9007199254740992. Keep large IDs as strings.
Why browser-side JSON tools?
JSON often contains sensitive data — API keys, customer records, configuration secrets. Pasting that into a server-based formatter sends it to a third party. The tools on this page parse and transform JSON entirely inside your browser, so confidential payloads never leave your machine.