SmartQueryTools

Sample JSON Files Online

Sample rows from JSON files — first N, last N, or random — directly in your browser.

How to sample JSON files

  1. Drop your file onto the upload area. It is loaded into the in-browser engine and the first 200 rows are shown.
  2. Pick a Method: First takes rows from the top, Last takes rows from the bottom, and Random picks rows from anywhere in the file.
  3. Enter the Number of rows you want. The default is 100.
  4. Click Sample. The preview shows the sampled rows and how many were taken.
  5. Click Download to save the sample in the same format you uploaded.

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 facilities team logs a cold-room temperature every two hours and only needs the latest three readings to check a door alarm.

Input (JSON)

[
  {
    "reading_at": "2026-08-01 00:00:00",
    "sensor": "cold-room-2",
    "temp_c": 3.8
  },
  {
    "reading_at": "2026-08-01 02:00:00",
    "sensor": "cold-room-2",
    "temp_c": 3.9
  },
  {
    "reading_at": "2026-08-01 04:00:00",
    "sensor": "cold-room-2",
    "temp_c": 4.1
  },
  {
    "reading_at": "2026-08-01 06:00:00",
    "sensor": "cold-room-2",
    "temp_c": 6.7
  },
  {
    "reading_at": "2026-08-01 08:00:00",
    "sensor": "cold-room-2",
    "temp_c": 7.2
  },
  {
    "reading_at": "2026-08-01 10:00:00",
    "sensor": "cold-room-2",
    "temp_c": 4
  }
]

Settings

  • Method: Last
  • Number of rows: 3

Result

reading_atsensortemp_c
2026-08-01 06:00:00cold-room-26.7
2026-08-01 08:00:00cold-room-27.2
2026-08-01 10:00:00cold-room-24

Last takes rows by their position in the file, not by the timestamp value. The file has six rows, so asking for three returns rows 4 to 6 in their original order. If the log were not already in time order, sort by reading_at first. Random with the same settings would return three rows from anywhere in the file.

Working with JSON files

A JSON sample returns a smaller array of complete objects. It is handy for building API mocks, seeding a test database, or pasting realistic records into a bug report. Nested objects and arrays inside each record are kept intact, so the structure of the sample matches the original. First with a small N is also a fast way to see the shape of a large API dump before writing code against it.

The array is loaded as a table first. Every sampled object therefore has every key found anywhere in the file, with null filling the gaps, even if those keys were missing in the original record. Numbers stay numbers and booleans stay booleans. The output is a pretty-printed JSON array, not one object per line. Date strings are detected on load and written back as YYYY-MM-DD, so an ISO timestamp with a T comes out with a space instead. Keys follow the order they were first found in the file.

Frequently Asked Questions

Can I take a random sample of a JSON array?

Yes. Choose Random and a row count. The tool picks that many objects from anywhere in the array and saves them as a new JSON array.

Why do sampled JSON objects have keys set to null?

All objects share one set of columns after loading. Keys that a record did not have in the source are written as null.

What happens if I ask for more rows than the file has?

You get every row. First and Last return the whole file, and Random returns all rows as well.

Is the random sample the same each time?

No. Every click of Sample draws a new random set, and the rows may not keep their file order. For a repeatable sample, use the SQL Query tool with USING SAMPLE reservoir(N ROWS) REPEATABLE (seed).

What is the difference between Sample and Head or Tail?

First and Last in this tool do the same as Head and Tail. Sample adds the Random method, which spreads the selection across the whole file.

Related Tools