parse · format · ship
A privacy-first JSON toolkit that runs entirely in your browser. No servers, no tracking, no data collection. Just powerful JSON tools.
Every JSON tool out there wants your data. They upload it to servers, run it through APIs, store it in databases. jsont is different.
- 100% client-side — All processing happens in your browser
- Zero data transmission — Your JSON never leaves your machine
- No accounts required — Just open and use
- No tracking — No analytics, no cookies, no fingerprinting
Open DevTools, check the Network tab. You'll see nothing but static assets. That's a feature.
- Syntax highlighting with CodeMirror 6
- Line numbers and code folding
- Drag & drop file support
- LocalStorage persistence — your work survives page refreshes
- Large file support with virtualized rendering
Not all JSON is created equal. jsont accepts:
- Single quotes (
'key': 'value') - Trailing commas (
[1, 2, 3,]) - Comments (
// lineand/* block */) - Unquoted keys (
{key: "value"}) - JavaScript literals (
undefined,NaN,Infinity) - Hexadecimal numbers (
0xFF) - Binary and octal numbers (
0b1010,0o755) - BigInt literals (
123n) - Template literals (
`hello ${name}`) - Arrow functions (
() => {}) - Regular functions (
function() {}) - Regex literals (
/pattern/gi) newexpressions (new Date())- Python constants (
None,True,False) - YAML format — paste YAML directly, it converts to JSON automatically
Paste JavaScript objects directly from your code — jsont handles it all.
- Pretty-print with configurable indentation (2/4 spaces, tabs)
- Minify to single line
- Sort keys alphabetically (top-level or recursive)
- Real-time validation with human-readable errors
- Jump to error — click the error message to navigate
- JSONPath display for error locations
Paste broken JSON and click "Try to Fix". The repair engine handles:
- Missing quotes around keys/values
- Missing commas and colons
- Unclosed strings, arrays, objects
- Python constants (
True,False,None) - Trailing commas
- Unescaped control characters
- Expand/collapse individual nodes or entire tree
- Collapse to depth (1, 2, 3, or all levels)
- Type indicators for strings, numbers, booleans, null, arrays, objects
- Size badges showing array length and object key count
- Click to copy JSONPath or values
- JSONPath query with context-aware autocomplete
- Text search for quick filtering
- Hover preview for long strings
Query your JSON with powerful JSONPath expressions:
- Context-aware autocomplete — suggests properties and indices as you type
- Keyboard navigation — arrow keys to browse, Enter to select, Tab to complete
- Live results — see extracted values instantly in a collapsible panel
- Copy results — one-click copy of query output
- Visual highlighting — matching nodes highlighted in tree
Supported syntax:
| Expression | Description |
|---|---|
$ |
Root object |
$.property |
Child property |
$.store.books |
Nested property |
$[0] |
Array index |
$[*] |
All array elements |
$..property |
Recursive descent (find all) |
$[?(@.price < 10)] |
Filter expression |
Example queries:
$.users[*].email— all user emails$..name— every "name" field at any depth$.products[?(@.price < 100)]— products under $100
Generate type-safe code from your JSON:
TypeScript Interfaces
- Interface vs Type alias
- Optional/required fields
- Export keyword toggle
- Readonly properties
- Custom root type naming
Zod Schemas
- Strict mode support
- Nullable handling
- String format detection (DateTime, URL, Email, UUID)
- Inferred type export
TypeBox Schemas
@sinclair/typeboxcompatible output- Format detection (email, uri, uuid, date-time)
- Integer vs Number inference
- Static type inference with
Static<typeof Schema> - Configurable schema naming
JSON Schema
- Draft-07 compliant
- Required vs optional inference
- Strict mode (additionalProperties: false)
- Examples from source data
YAML Export
- Convert JSON to YAML format
- Configurable indentation (2/4 spaces)
- Quote style options (single/double)
- Force quotes toggle
Transform arrays of objects with a visual mapper:
- Select which fields to include
- Rename fields inline
- Live preview of results
- Export as JSON or JavaScript
.map()code
Side-by-side comparison of two JSON documents:
- Visual diff highlighting — added, removed, and modified values
- Ignore array order — compare arrays as sets
- Click to jump — navigate directly to differences
- Diff summary — count of changes by type
- Paste or type — compare any two JSON structures
Build HTTP requests with your JSON as the body:
- Method selector (GET, POST, PUT, PATCH, DELETE)
- Custom headers with enable/disable toggles
- Generate cURL, fetch, or axios code
- Syntax-highlighted preview
Quick transformations in the toolbar:
- Base64 encode/decode
- URL encode/decode
- JSON string escape/unescape
Export JSON arrays to CSV format for spreadsheets:
- Multiple delimiters — comma, semicolon, tab, pipe
- Configurable quoting — quote all fields or auto-detect
- Flatten nested objects —
user.namebecomes a column - Header row toggle — include or exclude column names
- Line ending options — CRLF (Windows) or LF (Unix)
- Copy or download — get your CSV instantly
Generate realistic test data with Faker.js:
- Multiple data types — users, products, orders, blog posts, and more
- Size presets — small (5 items), medium (50 items), large (1000 items)
- Root type selection — generate as object or array
- Realistic data — names, emails, addresses, UUIDs, dates, prices
- Nested structures — includes related objects and arrays
| Action | Mac | Windows/Linux |
|---|---|---|
| Format | ⌘ + Enter |
Ctrl + Enter |
| Minify | ⌘ + Shift + M |
Ctrl + Shift + M |
| Copy | ⌘ + Shift + C |
Ctrl + Shift + C |
| Toggle Tree View | ⌘ + Shift + T |
Ctrl + Shift + T |
| Sort Keys | ⌘ + Shift + S |
Ctrl + Shift + S |
- Framework: Next.js 16 (App Router)
- UI Components: shadcn/ui
- Editor: CodeMirror 6
- Styling: Tailwind CSS 4
- Icons: Lucide
# Clone the repository
git clone https://github.com/rovnyart/jsont.git
cd jsont
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildOpen http://localhost:3000 to see the app.
We don't have one because we don't collect anything.
- No cookies
- No analytics
- No telemetry
- No server-side processing
- No data transmission
Your JSON stays in your browser. Period.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License — see LICENSE for details.
Built with care by rovnyart