JSON Array Splitter
Split a JSON array into fixed-size batches, preserving value spelling and source order. Download all JSON files and a manifest in one ZIP.
This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.
Divide a top-level JSON array into consecutive, independently readable batches and download them as a ZIP with a source index manifest.
How to use it
- 1Paste a JSON array or open a local .json file.
- 2Set Items per file and select Split array.
- 3Preview the first batch and download the full ZIP.
Example
- Input
- [{"id":9007199254740993},{"id":2},{"id":3}] Items per file 2
- Output
- batch-001.json → [{"id":9007199254740993},{"id":2}] batch-002.json → [{"id":3}]
The ZIP also contains manifest.json with the item counts and inclusive zero-based source ranges.
What happens to your data
The browser reads the JSON and builds the archive on this device. The file, name and record contents are excluded from usage measurement.
Last updated November 2026
Turn one JSON array into smaller files for staged imports, handoffs or test fixtures. Set how many items each file should contain. The splitter keeps source order and downloads the numbered JSON batches with a manifest in one ZIP. Paste an array or open a UTF-8 JSON file without uploading it.
How it works
The splitter validates the JSON and locates each top-level value before copying consecutive batches into new array wrappers. It keeps the original numeric tokens and escaped string spelling. An integer such as 9007199254740993 is copied with every digit. Objects, nested arrays, strings, booleans, numbers and null may be mixed. An inner array counts as one top-level item. Duplicate object property names are rejected to prevent different interpretations of the output.
The archive contains batch-001.json, batch-002.json and so on, plus manifest.json. Each batch is a standalone UTF-8 JSON array. The manifest describes the number of items per file and where each batch starts and ends in the source array, with inclusive zero-based indices. The last file can contain fewer items. Removing the array wrappers and joining the elements in numbered file order recreates the original sequence of values.
This tool splits by item count. A file containing a long string can still be larger than another file with the same number of items. It accepts up to 1 MiB of JSON, 50,000 values and 64 levels of nesting. Choose 1 to 10,000 items per file and no more than 100 output files. Objects and newline-delimited JSON are different input shapes. For a JSON object containing an array, extract the array first. An empty array produces a clear message instead of an empty ZIP.
Worked example: Make two import batches
- Input
- [{"id":9007199254740993},{"id":2},{"id":3}] Items per file 2
- Result
- batch-001.json → [{"id":9007199254740993},{"id":2}] batch-002.json → [{"id":3}]
The ZIP also contains manifest.json with the item counts and inclusive zero-based source ranges.
Common use cases
- Split a numbered array into predictable import batches.
- Share smaller JSON files with a teammate without losing record order.
- Make test datasets while preserving the exact spelling of numeric IDs.
- Use the manifest to locate which batch contains a particular source index.
Frequently asked questions
Can I split a JSON file into batches of 100 records?+
Set Items per file to 100. Each full batch contains the next 100 top-level values, and the last batch can contain fewer.
Can I split an object containing a nested array?+
The top-level value must be an array. Copy the nested array itself into the splitter and keep its opening and closing brackets.
Does the splitter enforce a byte limit for each output file?+
It splits by top-level item count. Individual batch sizes vary with the lengths of the items. The original input has a 1 MiB limit.
How can I check the order of the batches?+
Read manifest.json or sort the zero-padded filenames. The manifest gives inclusive first and last indices starting at zero.
Does it reformat long numbers or scientific notation?+
The tool copies each batch’s original value text. It adds array wrappers and line breaks without reparsing numeric tokens as JavaScript numbers.
Standards and limitations
Related tools
JSONPath Extractor
Extract JSON values by child property, array index or wildcard. Export each match with its normalized path and original numeric spelling.
JSON Formatter & Validator
Format, validate, and minify JSON with exact line errors, a searchable tree, and private processing.
ZIP Extractor
Inspect supported ZIP archives and extract files with explicit path, integrity and expansion limits.
CSV to XML
Convert CSV to XML with original headers, leading zeros and empty strings preserved.