JavaScript Minifier
Minify JavaScript in your browser with a parser. The code is not executed.
Pretty-print JSON, minify it, or check that it parses in the page. Comments, trailing commas, and single quotes fail. It does not turn the result into CSV.
A JSON formatter checks whether JSON is valid, then pretty-prints or minifies it in your browser.
This tool runs in your browser. Inputs, files and generated values stay on this device. Favorites and recently used tools, if you use them, store only tool names in local storage — never passwords, documents or QR contents. See the privacy policy.
The JSON Formatter pretty-prints JSON, minifies it, or checks that it parses. Use it when an API response is one long line, or when a file fails and you need the parser’s position. The page uses the browser’s JSON parser. Comments, trailing commas, and single quotes fail. This page does not convert JSON to CSV.
Format turns {"name":"Ada","id":1} into a four-line object: an opening brace, then "name": "Ada", then "id": 1, then a closing brace, with two spaces of indentation. Minify of that pretty form returns {"name":"Ada","id":1}. Validate of the same input says: This JSON is valid. The keys and values do not change.
The input {"a":1,} does not format. The page reports Invalid JSON at position 7, then the browser’s parser message. Position 7 is the character after the comma, where a property name would have to start. Delete the comma before the closing brace.
{"a":1} // no fails at position 8, which is the slash after the object. {'a':1} fails at position 1, because a JSON key must use double quotes. The page does not strip comments or convert quotes. Fix the text, then Format again.
JSON is text for objects, arrays, strings, numbers, true, false, and null. Format and Minify both parse the text and then stringify it again. Format uses two-space indentation. Minify uses no extra space. Validate only parses, and on success it shows the sentence This JSON is valid. An empty box says: Paste JSON to format, minify or validate. A document longer than 750,000 characters is rejected before parsing.
Keys and strings use double quotes. Numbers are plain digits, with an optional fraction or exponent. Trailing commas are not allowed after the last item in an object or an array. Comments, including // and /* */, are not part of JSON.
Single quotes are a JavaScript habit, not JSON. {'a':1} fails. Undefined and functions are not JSON values. A trailing comma in a hand-written file is the most common reason Format fails on an otherwise familiar object.
Pretty print adds line breaks and indentation so a person can see the structure. Minify removes that whitespace so the text is shorter to paste. The data is the same if both operations succeed.
Stringify can change the spelling of a number that JavaScript cannot store exactly, and it drops undefined object values if they appear after a successful parse of a larger script you converted by hand. Standard JSON numbers and strings round-trip. The page does not sort keys.
When the browser reports a position, the message starts with Invalid JSON at position, then the parser text. Count from the start of the pasted text, starting at 0 in the usual parser message, and look at that character. Position 7 in {"a":1,} is the spot after the comma.
If the message has no position, the page still says Invalid JSON and includes the parser text. The box is not rewritten when parsing fails. The previous output stays until a later success, so read the error before you trust the output box.
Parsing and formatting happen in your browser. The JSON is not uploaded to Tools Star Hub and is not saved in local storage. Do not paste secrets you would not want in the page’s memory while the tab is open. Closing the tab or pressing Clear drops the text from the page.
Standard JSON is required: double quotes, no comments, and no trailing commas. A document longer than 750,000 characters is rejected. This formatter does not turn JSON into CSV and does not load a URL. The error text comes from the browser’s parser, so the wording after the position can vary slightly by browser. The position number is the one the parser reports.
See the disclaimer for what these tools do not cover.
Minify JavaScript in your browser with a parser. The code is not executed.
Encode text to Base64 or decode it back, using UTF-8. Anyone can decode the result, so it is not a way to hide a password. A file drop is not accepted.
Minify HTML in your browser with a conservative pass that keeps pre, textarea, script and style content.
Minify CSS in your browser while preserving strings, URLs, comments and important spacing.
Generate one or many UUID v4 values in your browser using a secure random source.
Encode or decode URL components in your browser with encodeURIComponent.
Guide
JSON is a text format for objects and arrays. See how to read it, why it fails to parse, and how to format it in the browser.
Read guideGuide
Turn a JSON array of objects into CSV. The first row is the keys, and commas inside cells are quoted.
Read guideGuide
Use the first CSV row as keys and turn each following row into a JSON object.
Read guideGuide
Run a JavaScript regular expression on sample text and read each match, its index, and its capture groups.
Read guideGuide
Build .gitignore text from Node, Next.js, environment, and other templates. Generating the text does not update a repository.
Read guideGuide
How to read a JWT header and payload, and why that does not verify the signature.
Read guide