Explore without losing precision
Open an object or array using its disclosure arrow. Choose Inspect for a container, or choose a scalar value, to see its exact JSON and path. Numbers retain their literal spelling, including integers beyond JavaScript’s safe range, decimal zeros and exponent notation. Search finds matching keys, scalar values and paths without executing regular expressions.
Copy a value or its location
Copy value and Download selected JSON use the complete selected JSON, including its quotes, escapes and nested contents. JSON Pointer identifies a location: /team/0/name selects the name in the first team entry. A slash within a property name becomes ~1 and a tilde becomes ~0. The root uses an empty pointer. Duplicate properties are all retained; path copying is disabled for ambiguous duplicate-key paths and their descendants.
Files, recovery and downloads
Original downloads preserve imported UTF-8 BOM and line endings until editing. Formatted downloads use two-space indentation and a final LF, retaining number literals, property order, duplicates and string escapes. Example, Clear and successful import save one Undo step including source, selected value, expanded containers and search. Ordinary source edits invalidate the view. Invalid UTF-8 and oversized imports preserve accepted work; syntactically invalid JSON stays editable with line and column feedback.
Limits and privacy
Processing stays in this browser with no automatic storage or uploads. Maximum input is 256 KiB, 20,000 values, 100 container levels and 4 MiB of combined path text. Each container and search page shows at most 80 entries at a time; downloads retain the complete content. A local worker has a ten-second cancellation deadline. JSON comments and trailing commas are rejected. Escaped isolated Unicode surrogates remain in the exact JSON and produce an interoperability notice.