Validate JSON Files Online
Validate JSON file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.
How to validate JSON files
- Drop your file onto the upload area. The report starts as soon as the file has loaded. There are no settings.
- Read the four summary cards: total rows, columns, null-heavy columns and all-null columns.
- Scan the Column Report table for each column's detected type, null count, percentage of nulls and number of distinct values.
- Check the warnings under the table. Columns that are entirely null are flagged in red and columns that are more than half null in amber.
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Worked example
A clinic exports a week of appointments before loading it into a reporting database. The analyst wants to know which fields are reliable before writing any queries.
Input (JSON)
[
{
"patient_ref": "P-104",
"clinic": "Eastside",
"appointment_date": "2026-06-02",
"no_show": false,
"notes": null
},
{
"patient_ref": "P-221",
"clinic": "Eastside",
"appointment_date": "2026-06-02",
"no_show": true,
"notes": "Called to rebook"
},
{
"patient_ref": "P-104",
"clinic": "Harbour",
"appointment_date": "2026-06-09",
"no_show": false,
"notes": null
},
{
"patient_ref": "P-318",
"clinic": null,
"appointment_date": "2026-06-11",
"no_show": false,
"notes": null
},
{
"patient_ref": "P-450",
"clinic": "Harbour",
"appointment_date": "2026-06-11",
"no_show": true,
"notes": null
}
]Settings
- No settings. The report is generated when the file loads.
Result
| Column | Type | Nulls | % Null | Distinct |
|---|---|---|---|---|
| patient_ref | VARCHAR | 0 | 0.0% | 4 |
| clinic | VARCHAR | 1 | 20.0% | 2 |
| appointment_date | DATE | 0 | 0.0% | 3 |
| no_show | BOOLEAN | 0 | 0.0% | 2 |
| notes | VARCHAR | 4 | 80.0% | 1 |
The summary cards read 5 rows, 5 columns, 1 null-heavy column and 0 all-null columns. notes is flagged in amber at 80% null. patient_ref has 4 distinct values in 5 rows, which shows P-104 appears twice, so it cannot be used as a unique key. Distinct counts ignore nulls, which is why clinic shows 2 rather than 3.
Working with JSON files
Each top-level key in the JSON objects becomes a column in the report. A key that appears in only some objects shows nulls for the objects that lack it. An explicit "key": null is counted the same way, so the report cannot tell a missing key from a null value. A high null percentage on an optional field is often expected. The same figure on a required field is a data problem.
Nested objects show as a single column with a STRUCT(...) type listing their fields, and arrays show with a [] suffix, such as VARCHAR[]. If a key holds numbers in some objects and strings in others, the type falls back to a text type rather than failing. That mixed type is often the first sign of an API change between exports. The Total rows card counts top-level objects. If it shows 1 for a file you expected to hold many records, the records are probably wrapped in an outer object such as {"data": [...]} and load as a single row.
Frequently Asked Questions
Can the report tell a missing JSON key from a null value?
No. Both are counted as nulls. Use the SQL Query tool with json functions on the raw text if you need to tell them apart.
Does this validate JSON syntax or a JSON Schema?
It checks that the file parses as JSON and reports on its columns. It does not validate against a JSON Schema. A syntax error stops the load with an error message.
Does Validate change or download my file?
No. It only produces the on-screen report. Nothing is modified and there is no download.
What counts as a null-heavy column?
Any column where more than 50% of values are null. The Null-heavy card counts all-null columns too, so a column that is 100% null is included in both cards.
Do distinct counts include nulls?
No. Distinct counts only non-null values. A column with values A, B and some nulls shows 2.
Related Tools
Fill Empty Values in JSON Files Online
Fill empty and null values in JSON files with a custom replacement value, directly in your browser.
Cast Column Types in JSON Files Online
Change column data types in JSON files directly in your browser. Cast text to numbers, dates to timestamps, or any supported type conversion — no upload required.
Manage Columns in JSON Files Online
Drop or select specific columns from JSON files directly in your browser. No upload required.
Validate CSV Files Online
Validate CSV file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.
Validate Excel Files Online
Validate Excel file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.
Validate Parquet Files Online
Validate Parquet file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.
JSON Viewer Online
View and inspect JSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert JSON to Parquet Online
Convert JSON files to Parquet format directly in your browser. No upload required — your data never leaves your device.