What is a JSON analyzer and why use one?
A JSON analyzer reports structural stats (size, depth, node and type counts) that raw text hides. Developers use it to diagnose bloated API responses, catch runaway nesting, and decide where to trim before shipping.
Paste JSON and get its UTF-8 byte size, maximum nesting depth, node counts, and value-type breakdown at a glance. It runs 100% in-browser, so your data never leaves the tab.
Edge cases & gotchas
- Empty
{}and[]are nodes but contribute zero scalar values. - Byte size counts UTF-8 bytes; multi-byte chars (emoji, accents) exceed the character count.
- Max depth counts nesting levels; a flat array of scalars is depth 1.
- Duplicate keys (invalid but seen in the wild): repair parsing keeps the last; counts reflect the parsed result.
nullis a distinct value type, separate from a missing key.- Large arrays of uniform objects dominate node count and are candidates for columnar restructuring.
Metrics reported
| Metric | Meaning |
|---|---|
| Byte size | UTF-8 bytes of the input |
| Max depth | Deepest nesting level |
| Total nodes | Objects + arrays + values |
| Object / array counts | Container tallies |
| Value-type breakdown | string / number / boolean / null counts |
How to use
- Paste or upload JSON into the Input pane.
- The tool parses (repair-aware) and computes stats instantly.
- Read byte size, max depth, total nodes, and per-type value counts.
- Use depth and size to find bloat, then minify or restructure heavy nodes.
- Confirm privacy in DevTools → Network (zero requests).
Examples
Basic object
{"name":"api","port":8080,"tags":["a","b"]}size ≈ 42 B max depth: 2 nodes: 1 object + 1 array + 5 values types: string 3, number 1, array 1, object 1
Nested payload: depth
{"a":{"b":{"c":{"d":1}}}}max depth: 4 4 objects, 1 number
Edge case: empty containers count as nodes
{"items":[],"meta":{}}max depth: 1 nodes: 1 object (root) + 1 empty array + 1 empty object scalars: 0
FAQ
What's a good maximum depth?
Keep it under ~5–6 levels; deeper nesting slows parsing and complicates access paths. Reduce it with Flatten JSON.
Why analyze JSON size?
Payload size drives network latency, parse time, memory, and API/egress cost.
What counts as a "node"?
Every object, array, and scalar value in the tree.
Byte size vs minified size?
Byte size is your input as-is (whitespace included); minifying strips whitespace for the real wire size.
Does whitespace affect parsing?
Slightly, but its main cost is bytes transferred, and gzip/brotli mostly erases that.
Is my JSON uploaded?
No. Analysis runs entirely in your browser.