JSON Toolbox

Local-first data conversion and JSON manipulation for developers.

Input → Transform → Output
  ↑        ↑         ↓
 CSV    Validate   TypeScript
 XML    Format     Schema
 YAML   Repair     Tree View

No server. No telemetry. Deterministic output.

What It Does

Convert, validate, format, and transform JSON and related data formats. Everything runs in your browser. Nothing leaves your machine.

Formats: JSON, CSV, XML, YAML, CSS
Operations: Convert, Format, Minify, Validate, Repair, Diff, Query, Transform
Output: JSON, TypeScript interfaces, JSON Schema, Tree view

Capabilities

Module Input Output Notes
CSVCSV, TSVJSONColumn filter, transpose, delimiter auto-detect
JSONCSVArray-of-objects to CSV
XMLXMLJSONPreserves attributes, compact mode
JSONXMLConfigurable output
YAMLYAMLJSONFull YAML 1.2 support
JSONYAMLFlow style, custom indent
CSSCSSJSONRule-based parsing
FormatJSONJSONBeautify, minify, sort keys
ValidateJSONReportSyntax check, schema validation
RepairBroken JSONValid JSONFixes trailing commas, single quotes, comments
Diff2× JSONDiff viewVisual comparison, ignore order option
QueryJSON + JSONPathJSON subsetStandard JSONPath expressions
SchemaJSONJSON SchemaDraft-07 generation
TransformJSONTypeScriptInterfaces, types, JSDoc
UtilitiesStringStringBase64, URL encode/decode, escape
TreeJSONTree viewInteractive expand/collapse

Examples

CSV to JSON

Input:

name,role,active
Alice,admin,true
Bob,user,false

Output:

[
  {"name": "Alice", "role": "admin", "active": true},
  {"name": "Bob", "role": "user", "active": false}
]

JSON to TypeScript

Input:

{"id": 1, "name": "Product", "price": 29.99, "tags": ["sale"]}

Output:

interface Root {
  id: number;
  name: string;
  price: number;
  tags: string[];
}

Repair Broken JSON

Input:

{name: 'Alice', active: true,}  // single quotes + trailing comma

Output:

{"name": "Alice", "active": true}

Why Local Execution?

Concern Server-based tools JSON Toolbox
Data privacyData sent to third partyData never leaves browser
PII handlingCompliance riskNo compliance burden
Offline useRequires internetWorks offline after first load
SpeedNetwork latencyInstant
DeterminismServer may changeSame input = same output
Enterprise useMay violate policyIT-friendly

When This Matters

  • Converting customer data (PII)
  • Working with API keys or credentials
  • Processing proprietary business data
  • Working in air-gapped environments
  • Requiring audit-compliant workflows
  • Needing reproducible output

Use Cases

Enterprise/Compliance

Convert production data exports without sending sensitive information to external services.

API Development

Transform API responses to TypeScript interfaces. Validate against JSON Schema.

Data Engineering

Convert between CSV, JSON, YAML, XML for pipeline debugging.

Sysadmin/DevOps

Format and validate configuration files. Repair malformed JSON from logs.

Education

Learn data formats with instant feedback. No account required.

Offline/Travel

Full functionality without internet after initial page load.

Privacy & Security

Item Status
Data sent to serverNever
Analytics/telemetryAggregate only (cookieless, self-hosted)
CookiesNone
Account requiredNo
Network requests during useNone
localStorageOpt-in (saves last input per tab)

Suitable for:

  • Personally Identifiable Information (PII)
  • Financial data
  • Healthcare data (PHI)
  • Proprietary business data
  • API keys and credentials (for testing)

Privacy Manifesto

JSON Toolbox follows a strict privacy-first philosophy:

1. Your data stays on your machine
All processing happens in the browser. Nothing is sent to backend.
2. No identification
No cookies. No fingerprints. No session IDs. No user IDs.
3. Opt-in storage
localStorage is only used to save your preferences. Cleared with one click.
4. Transparent analytics
Aggregate usage statistics only. Self-hosted on same infrastructure.
5. No reconstruction
Impossible to reconstruct individual sessions or user behaviors.

We believe tools should help, not surveil.

Observability & Analytics

JSON Toolbox uses privacy-first analytics to improve the tool:

What is collectedPage views, tab switches, operation types (format/validate/convert), theme choice, language choice
How it worksSelf-hosted Matomo | Cookieless mode | POST requests | Respects DNT
What is NOT collectedYour JSON data | IP address (anonymized) | Session replay | Browser fingerprint | Identifiers

Disable analytics

Add to your code before page load:

<script>window.ANALYTICS_DISABLED = true;</script>

PII & Enterprise Compatibility

JSON Toolbox is designed for enterprise environments with strict data policies:

GDPR-friendly
No personal data collected. No consent banners needed.
HIPAA-compatible
PHI never leaves the browser. No third-party exposure.
SOX-compliant
Deterministic output. Verifiable local execution.
Audit trail
No server-side logging of user data. Nothing to audit.
Self-hosted
Hosting mackan.eu yourself? Full control over all infrastructure.

Air-gapped & Offline Mode

JSON Toolbox works in completely isolated environments:

Enable offline mode

  1. Load the page once with internet
  2. All resources are cached locally
  3. Disconnect internet - tool still works

For full air-gap

Disable analytics and download for local hosting:

<script>window.ANALYTICS_DISABLED = true;</script>
<!-- Then download /tools/json/ folder for local hosting -->

All features offline

CSV/XML/YAML/CSS conversion | Format/Validate/Repair | Diff/Query/Schema | Transform/Tree/Utilities

Deterministic Developer Utility

JSON Toolbox follows the Deterministic Developer Utility pattern:

1. Local execution
No network calls during operation
2. Deterministic output
Same input always produces same output
3. Zero onboarding
Paste data, click convert
4. No side effects
Nothing installed, nothing persisted without consent
5. Keyboard-first
Full operation via shortcuts (press ?)

This is a tool, not a service.

Keyboard Shortcuts

Shortcut Action
?Show/hide shortcuts
Ctrl+EnterRun current operation
Ctrl+1-9Switch to tab 1-9
Ctrl+TabNext tab
Ctrl+Shift+TabPrevious tab
Ctrl+Shift+CCopy output
EscapeClose modal

Policies

Dependency Policy

Allowed: Capability libraries (local-only, deterministic, self-hosted)

Self-hosted in /vendor/:

  • papaparse.min.js — CSV parsing (RFC 4180)
  • js-yaml.min.js — YAML parsing (YAML 1.2)
  • jsonrepair.min.js — Broken JSON repair
  • lucide.min.js — Icon library

Disallowed: Frameworks, build systems, CDN dependencies, external services

Local Execution Policy

  • No network calls during tool operation
  • No backend or cloud processing
  • No telemetry (aggregate analytics only, opt-out)
  • All processing in browser JavaScript

Accessibility Policy

  • WCAG AA contrast compliance (≥4.5:1)
  • Keyboard navigation for all functions
  • ARIA labels on interactive elements
  • Screen reader compatible

Browser Support

Browser Status
Chrome 90+Full support
Firefox 90+Full support
Safari 14+Full support
Edge 90+Full support

Technical Details

Metric Value
Initial load~65 KB
Full load (all modules)~395 KB
LanguagesSwedish, English
ThemesLight, Dark

Libraries

  • PapaParse — CSV parsing
  • js-yaml — YAML parsing
  • jsonrepair — JSON repair
  • Lucide — UI icons

Related Tools

Part of the mackan.eu developer utility suite: