SmartQueryTools

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

  1. Drop your file onto the upload area. The report starts as soon as the file has loaded. There are no settings.
  2. Read the four summary cards: total rows, columns, null-heavy columns and all-null columns.
  3. Scan the Column Report table for each column's detected type, null count, percentage of nulls and number of distinct values.
  4. 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

ColumnTypeNulls% NullDistinct
patient_refVARCHAR00.0%4
clinicVARCHAR120.0%2
appointment_dateDATE00.0%3
no_showBOOLEAN00.0%2
notesVARCHAR480.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