Input node
JSON Files
Read array or newline-delimited JSON; nested objects become columns.
What it does
Reads one or more JSON files and streams their records into the pipeline. Each file is either a top-level array of objects or newline-delimited JSON with one object per line, and which it is gets detected automatically per file. Nested objects are flattened into dot-notation columns; arrays inside a record are kept as JSON text.
Inputs and outputs
| Inputs | None. This node starts a pipeline. |
| Outputs | One. |
When to use it
- Load an API export or a .json / .ndjson dump
- Flatten nested records into tabular columns
- Stack a folder of daily JSON extracts into one stream
Examples
Array of objects
[ {"id":1,"name":"Ada"}, {"id":2,"name":"Grace"} ]Each object in the array becomes a row.
Newline-delimited (NDJSON)
one JSON object per line
Detected automatically. There is no setting to change.
Nested object
{"user":{"name":"Ada"}} → column user.nameNesting becomes dot-notation column names.
A key that appears late
Inference rows: 0
Scans every record before fixing the columns, so a rare key still becomes one.
Tips
- JSON has no header row, so the columns themselves come from the first 10,000 records. A key that only ever appears later won't be a column at all. Set Inference rows to 0 to read every record first.
- The first file that can be read sets the columns, and later files are matched to it BY NAME. A missing key is filled with nulls, an extra one is dropped, and a file with no keys in common is skipped. Every difference is named in the run's Messages.
- A file whose first record is not valid JSON is skipped and named, wherever it sorts, and an empty file is passed over. Under Stop the run, it stops the run. If no file can be read, the run fails and names the file.
- Change that with “If a file is different”: Skip reads only files matching the first exactly, and Stop the run fails on any difference.
- An array inside a record stays as JSON text. Pull values out of it downstream with the JSON parse node.
- Turn on “Add source file name as column” to keep track of which file each row came from once several are stacked.
- Its columns show in the builder without a run.
- Turn on 'Run each file separately' to process every file as its own run, handy when one bad file shouldn't fail the rest. Every start does this, a schedule and a flow step included. A Test run still reads them together. The runs take turns, one at a time.