Formatter Validator Minifier JSON ↔ YAML JSON → CSV JSON ↔ XML JSON Diff Schema Validator JSONPath Tester JWT Decoder More Tools Blog FAQ
Transparency · Open about how it works

How JSONTools Works

Every JSON tool on this site runs entirely in your browser. Here's exactly how that works, why it matters, and how you can verify it yourself.

The short version

The short version

You paste JSON into a page. Your browser's JavaScript engine parses and processes it on your device. The result appears on the same page. Your data never reaches our server because there is no server-side processing — the website is a static collection of HTML, CSS, and JavaScript files. This is fundamentally different from most online JSON tools, which send your data to their server and process it remotely.

What happens when you paste JSON

What happens when you paste JSON

Step by step, when you paste a JSON document and click Format:

  1. Your browser already has the page's HTML, CSS, and JavaScript loaded — these were sent by our server when the page first loaded, but they're now cached locally.
  2. The JavaScript event listener for the Format button fires inside your browser tab.
  3. It reads the value of the input <textarea> — also entirely local.
  4. It calls the browser's native JSON.parse(value), which runs inside the JavaScript engine (V8 in Chrome, JavaScriptCore in Safari, SpiderMonkey in Firefox).
  5. It calls JSON.stringify(parsed, null, 2) to produce the formatted output.
  6. It writes the result back to the DOM, where you see it.

At no point does any of this involve a network request. The processing is identical to what would happen if you wrote a Node.js script and ran it on your own machine — except it's running in the browser tab instead of a terminal.

How you can verify this yourself

How you can verify this yourself

You don't have to trust our word. Anyone can verify the no-upload claim with their browser's built-in tools:

  1. Open the JSON Formatter (or any tool).
  2. Press F12 (or Cmd+Option+I on Mac) to open Developer Tools.
  3. Click the Network tab.
  4. Click the clear button (🚫) to remove existing log entries.
  5. Now paste your JSON and click Format.

You'll see zero new entries in the Network tab. The Format operation runs entirely locally. Compare this to any tool where pasting JSON triggers an HTTP request — those tools are sending your data to their server.

(You may see a few network requests for ads and analytics. Those don't contain your JSON. You can inspect the request payloads to confirm.)

Why we built it this way

Why we built it this way

Browser-side processing has real costs — larger initial page load, more complex JavaScript, less ability to share results via URL — but the benefits matter:

The technical stack

The technical stack

For the curious, here's what powers the site:

What about the "limits" of this approach?

What about the "limits" of this approach?

Browser-side processing has tradeoffs. Here's where it falls short and what to do instead:

For most JSON tasks — which involve formatting, validating, converting, or inspecting data smaller than 50 MB — the browser is more than enough.

Our Network