How JSON Wallet Works
A transparent, implementation-level guide to what the editor does with your data.
JSON Wallet is built as a browser application, not as a form that sends every payload to a formatting server. That design choice affects privacy, speed, recovery, and the way each tool is implemented. This page documents those decisions so you can decide when the editor is appropriate for your workflow.
Local-first editing and tab recovery
Formatting, validation, repair, comparison, encoding, tree rendering and size analysis run in JavaScript in the current browser tab. Your open documents are saved to browser local storage so an accidental refresh does not immediately destroy the session. Tabs left untouched for 15 days are moved to a local “Recently closed” archive instead of remaining mounted indefinitely.
Local storage belongs to the browser profile and device you are using. It is not an online backup and does not synchronize between devices. Clearing site data removes it, so important documents should still be saved to a file or source-control system.
Validation and formatting
Strict validation uses the browser's JSON parser. A payload either conforms to JSON syntax or returns the parser's first error location. Formatting then serializes the parsed value with consistent indentation; minifying serializes the same value without presentation whitespace. This means formatting changes layout, not the underlying object, array, string, number, boolean or null values.
The governing JSON grammar is defined by RFC 8259. For a practical walkthrough, see how to format and validate JSON.
Repair is reviewable, not silent
Malformed input is passed through the open-source jsonrepair parser. JSON Wallet then calculates a line-based difference between the original and repaired text and groups related changes into reviewable hunks. The repair dialog labels common corrections—including single quotes, unquoted keys, trailing commas, comments, missing closing brackets, and non-JSON values such as undefined—so you can apply only the changes you accept.
Repair is intentionally separate from validation. A repair can produce valid JSON while still choosing a value you did not intend, so the result should be reviewed before it is used in an application or configuration file.
Comparison has two different questions
The Values comparison parses and consistently formats valid documents before computing a side-by-side line difference. This removes indentation noise and focuses the result on values that were added, removed or changed. When a side is not valid JSON, comparison falls back to its raw text so syntax edits can still be inspected.
The Structure comparison asks a different question: which key paths and value types exist on each side? It walks nested objects and arrays, then reports matched, added and removed paths. That is useful when an API contract changes even if the example values are different.
How the size analyzer estimates payload cost
The analyzer calculates the approximate minified UTF-8 byte size of every value. Object keys, quotes, separators, arrays and nested objects are included. Repeated objects inside an array are aggregated by key, which makes fields such as long descriptions, embedded images or repeated metadata stand out without expanding thousands of individual rows.
The number is an estimate of the minified JSON payload itself. HTTP headers, compression, transport framing and server-specific encoding are outside that measurement.
HTML preview isolation
HTML Preview renders source in a sandboxed iframe with a separate, opaque origin. Scripts inside the preview cannot access JSON Wallet's document, cookies or local storage because the preview is not granted same-origin access. The sandbox permits scripts and basic form interaction so realistic snippets can still be tested.
A sandbox reduces exposure but is not a substitute for reviewing untrusted HTML. Do not enter credentials into an unknown preview or treat the preview as a security scanner.
The one opt-in server feature: sharing
Normal editing does not upload document contents. Clicking Share is the explicit exception: the two panel values and tab label are sent to JSON Wallet's share API so another browser can open the generated link. The server assigns a random 12-character hexadecimal identifier and stores the snapshot for a maximum of 24 hours. Collaborators poll for version changes, and the last accepted update becomes the current version.
Anyone holding the link can read or modify the shared tab until it expires. Never share API keys, passwords, tokens, personal information or confidential production data. More detail is available in the Privacy Policy.
Limits and responsible use
- Files and fetched responses are limited to 10 MB; inputs above 1 MB trigger a performance warning.
- Browser local storage is convenient session recovery, not durable backup.
- Repair suggestions and comparison results should be reviewed by someone who understands the intended data contract.
- Remove credentials and personal data before emailing a reproduction or creating a share link.