Skip to main content

JSON Analyzer

Know what is actually in your data.

The analyzer profiles a document and reports what it finds: how big it is, how deep it goes, how many objects, arrays and values of each type — and, more usefully, where the data is inconsistent.

Input JSON

Size: 0 BLines: 0

Paste JSON to get started

Try an example:

No JSON entered.

What the analyzer measures

  • File size in bytes, total nodes and maximum nesting depth.
  • Counts of objects, arrays, strings, numbers, booleans and nulls.
  • Total and unique property names.
  • A per-field profile: how often each path appears, which types it holds, and sample values.

Data-quality checks

Structure statistics tell you the shape. The findings tell you where it is unreliable:

  • Inconsistent types — the same field is a number in 99.9% of records and a string in the rest. This is the single most common cause of downstream crashes.
  • Missing fields — a property that appears in only some sibling objects, which usually means it is optional.
  • Null-heavy fields — a field that is null in a third or more of its occurrences.
  • Empty strings and empty arrays, which often stand in for missing data.
  • Duplicate identifiers — repeated values in a field named id, uuid, key, sku and similar.
  • Mixed date formats — ISO 8601 in some records, MM/DD/YYYY or a Unix timestamp in others.
  • Arrays that mix item types, which makes them awkward to map onto typed models.
  • Very deep nesting, which makes a document hard to query and to render.

Findings are ranked, not alarmist

Every finding carries a severity. Warning means something is probably wrong and worth checking. Info means it is worth knowing but may be entirely intentional — plenty of well-designed APIs have optional fields and nullable columns. The analyzer describes what it observed; it does not claim your data is broken.

From findings to a fix

Inconsistent types and mixed date formats usually point at a producer that needs fixing. Optional fields and nullable columns should be reflected in your generated types and your JSON Schema — generate both from the same document so the contract matches reality.

Frequently asked questions

Does the analyzer change my JSON?
No. It only reads the document and reports what it found.
How does it handle very large documents?
Analysis runs in a Web Worker with iterative traversal and bounded per-field counters, so the interface stays responsive and memory use stays predictable.
What does “inconsistent types” mean?
The same field path holds values of more than one JSON type across the document — for example an id that is usually a number but occasionally a string.
Are the findings sent anywhere?
No. Analysis and its results stay in your browser.