SmartQueryTools

Split JSON Files Online

Split JSON files into multiple smaller files by row count, directly in your browser.

How to split JSON files

  1. Drop your file onto the upload area. The tool loads it and shows the total row and column count.
  2. Enter the number of rows each part should hold in Rows per chunk. The default is 1000.
  3. Click Calculate chunks. A button appears for each part, labelled with its row range, for example Part 2 with rows 1,001–2,000.
  4. Click each part to download it. Every part is a separate file in the same format as the original, named with a _part1, _part2 suffix.

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

An outdoor gear shop is uploading its catalogue to a marketplace that rejects files over a set row limit. Scaled down, the limit here is two products per file.

Input (JSON)

[
  {
    "sku": "TR-100",
    "title": "Trail runner shoe",
    "price": 119,
    "in_stock": true
  },
  {
    "sku": "TR-101",
    "title": "Merino running sock",
    "price": 18.5,
    "in_stock": true
  },
  {
    "sku": "TR-102",
    "title": "Rain shell jacket",
    "price": 164,
    "in_stock": false
  },
  {
    "sku": "TR-103",
    "title": "Headlamp 400 lm",
    "price": 42.99,
    "in_stock": true
  },
  {
    "sku": "TR-104",
    "title": "Hydration vest",
    "price": 89,
    "in_stock": true
  }
]

Settings

  • Rows per chunk: 2
  • Downloaded: Part 1 (rows 1–2)

Result

skutitlepricein_stock
TR-100Trail runner shoe119true
TR-101Merino running sock18.5true

Five rows at two per chunk gives three parts: rows 1–2, rows 3–4, and row 5 on its own. Part 1 is shown. Each part has the full header and the rows in their original file order. The last part is smaller because the row count does not divide evenly. Nothing is dropped or repeated between parts.

Working with JSON files

Each part is a valid, pretty-printed JSON array holding its share of the objects. That suits APIs that cap the number of records per request: send one part per call. Nested objects and arrays are kept as nested values in every part, with the same structure as the input. The file must hold an array of objects or a single object. A single object is one row, so there is nothing to split.

Because the file is loaded as a table, all objects in all parts share the same set of keys. A key that was missing from an object in the source is written as null. Integers larger than 9,007,199,254,740,991 are written as strings to avoid rounding. If the receiving system prefers one object per line, split the NDJSON version of the file instead. Date strings are written back as YYYY-MM-DD, and timestamps as YYYY-MM-DD HH:MM:SS with a space where the source may have had a T.

Frequently Asked Questions

Is each split JSON part a valid JSON file?

Yes. Every part is a complete array that starts with [ and ends with ], so it parses on its own.

Why do objects in the split JSON files have extra null keys?

The array is loaded as a table with one column per key found anywhere in the file. When parts are written, every object gets every key, and keys that were missing come out as null.

Can I split by a column value, such as one file per region?

Not with this tool, which splits by row count only. Filter the file once per value instead, or use the SQL Query tool.

Do I have to download each part separately?

Yes. Each part has its own download button and saves as a separate file. There is no single zip download.

Can I split a very large file?

Files up to 50 MB can be loaded on the free tier. The whole file is read into browser memory before splitting, so the practical limit also depends on your device.

Related Tools