Overview
Edit, format, repair, search, compare, validate, and convert JSON locally in your browser without uploading documents.
Features
- Lokaler JSON-Editor
- Formatierung und Reparatur
- Schema-Validierung
- Diff und Konvertierung
Manual
Status: P0031_RC2
Purpose and core rule
JSON Studio is a local, offline-capable workspace for editing, inspecting, comparing, and converting structured data. Source is always authoritative. Tree, Table, Schema, Validator, Semantic, Graph, and Diff either represent that document or explicitly use a comparison source. Edits made in a view are translated back into traceable Source edits and remain undoable.
Core operations neither upload document contents nor persist them automatically. Desktop and Web share the same Workbench and Core; only file, download, and clipboard adapters differ.
Requirements
Use a current browser or the Akyao desktop application and local structured data. JavaScript must be enabled. File and clipboard access is requested only after a user action.
Steps
Open a file or enter JSON, inspect Source with Diagnostics or the specialist views, run the required edits or conversions, and explicitly save or download the result.
Parameters
Indentation, final newline, search and Query expressions, schema, Diff source, converter options, filters, pagination, and view sizes are configured directly in the Workbench.
Result
The result is verified JSON Source or an explicitly generated local export together with traceable diagnostics, reports, or patches.
Common errors
Invalid syntax, a non-tabular structure, an unsuitable conversion format, or missing browser permissions can block individual actions. Source is never replaced silently.
Troubleshooting
Open Diagnostics, navigate to the reported position, apply Repair only after reviewing its preview, and reset the Workspace for layout problems. For file or clipboard issues, check format, permission, and secure browser context.
Toolbar and IconButtons
Tooltips and accessible names explain each command without relying on color. These AT-IconButtons mirror the central commands of the real toolbar.
| IconButton | Command | Effect |
|---|---|---|
| Open | Opens JSON directly or starts a confirmed import for TOML, YAML, JSON5, NDJSON, CSV, and XML. | |
| Save | Saves JSON to the current target; the browser downloads a local file. | |
| Save as | Saves under a new name or starts a new download. | |
| Paste | Reads text after an explicit clipboard permission. | |
| Copy | Copies Source or the named value, path, report, or patch. | |
| Undo | Reverts the latest Source edit. | |
| Redo | Restores the latest reverted edit. | |
| Reset | Clears Source only after the corresponding user action. | |
| Format | Formats valid JSON with 2 spaces, 4 spaces, or tabs and an optional final newline. | |
| Minify | Removes unnecessary whitespace from valid JSON. | |
| Sort keys | Sorts object keys after confirmation and remains undoable. | |
| Repair | Previews only safe repair steps before applying them. | |
| Search | Opens Source search. | |
| Search and replace | Opens the replacement bar for Source. | |
| Select all | Selects the complete Source text. | |
| Word wrap | Toggles visual line wrapping. | |
| Reset workspace | Restores views, filters, and splitters without changing Source. |
Workspace and layout
The left sidebar contains Inspector, Diagnostics, Search, and Query. Right work surfaces are Code / Data Tools, Tree, Table, Schema, Validator, Semantic, Graph, and Diff. Sidebars and splitters support pointer and keyboard resizing. The right pane can be collapsed. Ctrl+Shift+0 restores the canonical layout without touching the document.
Status indicators distinguish valid JSON, editable invalid intermediate text, and the last valid analysis state. A failure in a derived view never overwrites Source.
Files, drag and drop, and clipboard
Desktop uses native Open, Save, and Save As dialogs. In the browser, files remain local: Open uses the file picker, while Save and export create downloads. JSON loads directly. TOML, YAML, JSON5, NDJSON, CSV, and XML open an explicit conversion prompt. Cancellation, unreadable files, and failed conversions leave Source unchanged.
Drag and drop uses the same safe import path. Browser clipboard access requires a user gesture and possibly permission. The last valid content remains available when an operation fails.
Source editor, formatting, and repair
CodeMirror provides syntax highlighting, line numbers, folding, bracket matching, search/replace, word wrap, markers, and undo/redo. Invalid intermediate text remains editable. Navigation from Diagnostics, Search, Query, Tree, Validator, Semantic, Graph, or Diff focuses the matching source position.
Format accepts valid JSON only. Minify removes whitespace without changing values. Sort keys intentionally changes property order and requires confirmation. Repair lists safe syntax changes before applying them; Apply stays disabled when no safe repair exists.
Inspector and Diagnostics
Inspector shows the selected node's type, key, value, JSONPath, JSON Pointer, subtree, and semantic details. Values, paths, pointers, and subtrees can be copied. Primitive values can be edited and committed as undoable Source changes.
Diagnostics reports syntax errors, duplicate keys, and unsafe integers. Entries support navigation, Previous/Next, and report copy. Safe bulk fixes remain an explicit Repair action.
Search and Query
Search covers keys, values, and paths with data-type filters. Results support previous/next navigation and path or pointer copy; history and favorites retain recurring searches.
Query runs a local JSONPath core with child access, indexes, wildcard, recursive descent, slices, unions, and filters. IntelliSense, history, and favorites assist entry. Results can be focused and copied. No JavaScript eval path is used.
Tree and Table
Tree supports expand/collapse, root selection, complete row selection, Source synchronization, path/pointer copy, and primitive editing. Changes become normal undoable Source edits.
Table is available for suitably tabular arrays of objects. Columns derive from object keys. Sorting and filtering affect only the view; cell edits are committed back to Source. AT-Spreadsheet virtualizes large tables.
Schema and Validator
Schema derives a Draft 2020-12 schema and makes clear that types were inferred from sample data. Schemas can be opened, saved, edited, and copied. An explicit action can create an example document from the current schema.
Validator checks Source against that schema. Results expose schema and JSON paths, source, and category. Filters, Previous/Next, Refresh, and a copyable report are available. Document and schema syntax failures remain separate.
Semantic Explorer and Graph
Semantic recognizes URLs, email addresses, colors, images, date/time values, Base64, and embedded JSON without replacing the actual JSON type. Search, filters, pagination, Previous/Next, reindexing, and reports operate on the local index.
Graph visualizes the hierarchy and synchronizes selection with Source. Search, zoom, fit, depth, minimap, and subtree focus handle large structures. Keys and values can be edited and nodes added or removed. SVG and PNG exports are generated locally.
Embedded image data is displayed locally. External image URLs are not loaded automatically; Open URL accesses them only after an explicit user action.
Diff, patch, and review
Diff compares Source with a comparison source and distinguishes Added, Removed, Changed, Type Changed, and Moved entries. Filters, F7/Shift+F7, and multi-selection support navigation. Individual, selected, filtered, or all changes can be applied in either direction.
JSON Patch uses RFC 6902 operations and correct RFC 6901 escaping. Guarded patches add test operations against stale targets. Root replacement, move detection, merge conflict strategies, review/skip, snapshots, bundles, portable sessions, and reports belong to the same local workflow.
Data Tools and formats
Data Tools includes TOML↔JSON, YAML↔JSON, JSON5↔JSON, NDJSON↔JSON, CSV↔JSON, XML↔JSON, Flatten/Unflatten, JSON Patch, Merge Patch, Schema Generate/Validate, TypeScript, duplicate-key fixing, selected-node sorting, and RFC 8785/JCS. XML and CSV mappings are deterministic but cannot be lossless for every arbitrary structure; unsuitable input is therefore never silently reinterpreted.
Input can come from Source, a file, or Live Input. History, output chaining, roundtrip verification, and Converter Audit record the workflow. JSON results replace Source only after an explicit command and as one undoable step.
Keyboard
| Shortcut | Function |
|---|---|
Ctrl+F / Ctrl+H | Search Source / search and replace |
Ctrl+Z / Ctrl+Y | Undo / redo |
Ctrl+Shift+0 | Reset workspace without changing Source |
Alt+1 through Alt+6 | Open Code, Tree, Table, Schema, Validator, or Semantic |
F7 / Shift+F7 | Next / previous Diff change |
Alt+ArrowLeft / Alt+ArrowRight | Change Semantic page |
| Arrow keys on a splitter | Resize the adjacent area |
On macOS, Ctrl commands use the usual Cmd variants. Further Diff shortcuts are listed in docs/KEYBOARD_SHORTCUTS.md.
Local storage, privacy, and troubleshooting
In the browser, JSON Studio stores only namespaced UI state such as layout, filters, and history in localStorage; Source contents are not stored there automatically. Desktop sessions, snapshots, and explicit files are created only by the documented local actions. Core features require no upload, tracking, or external service.
For invalid syntax, open Diagnostics and navigate to the reported position. For an unsuitable import, cancel conversion and inspect the source file. If browser clipboard access is blocked, check page permission and secure context. For large documents, use filters, pagination, and virtualized views. Reset workspace fixes layout issues without clearing Source.
Data sources
akyao.development.json-studio
No embedded external dataset. Input documents and images are provided by the user.
Runtime dependencies by tool
- @dagrejs/dagre 3.1.1: MIT
- @dagrejs/graphlib 4.0.5: MIT
- @dmsnell/diff-match-patch 1.1.0: Apache-2.0
- @hyperjump/browser 1.5.0: MIT
- @hyperjump/json-pointer 1.1.2: MIT
- @hyperjump/json-schema-formats 1.0.6: MIT
- @hyperjump/json-schema 1.17.8: MIT
- @hyperjump/pact 1.4.0: MIT
- @hyperjump/uri 1.3.6: MIT
- @types/d3-color 3.1.3: MIT
- @types/d3-drag 3.0.7: MIT
- @types/d3-interpolate 3.0.4: MIT
- @types/d3-selection 3.0.11: MIT
- @types/d3-transition 3.0.9: MIT
- @types/d3-zoom 3.0.8: MIT
- @xyflow/react 12.11.2: MIT
- @xyflow/system 0.0.79: MIT
- classcat 5.0.5: MIT
- content-type 1.0.5: MIT
- d3-color 3.1.0: ISC
- d3-dispatch 3.0.1: ISC
- d3-drag 3.0.0: ISC
- d3-ease 3.0.1: BSD-3-Clause
- d3-interpolate 3.0.1: ISC
- d3-selection 3.0.0: ISC
- d3-timer 3.0.1: ISC
- d3-transition 3.0.1: ISC
- d3-zoom 3.0.0: ISC
- idn-hostname 15.1.19: MIT
- json-stringify-deterministic 1.0.16: MIT
- jsondiffpatch 0.7.6: MIT
- just-curry-it 5.3.0: MIT
- punycode 2.3.1: MIT
- react-dom 19.2.8: MIT
- react 19.2.8: MIT
- scheduler 0.27.0: MIT
- use-sync-external-store 1.6.0: MIT
- uuid 14.0.1: MIT
- zustand 4.5.7: MIT