How to Import JSON File in n8n Easily 2026
By Impran M NLast checked against official docs
Getting a JSON file into an n8n workflow is really two separate problems: getting the raw file into the workflow at all, and then converting whatever n8n received, usually a binary blob, into structured data your other nodes can read. n8n handles both, but they use different nodes, and mixing them up is the most common reason people get stuck. This guide walks through the standard path: bringing the file in, parsing it with the Extract From File node, and reading the output correctly before you build anything on top of it.
Before you start
- An n8n workflow (cloud or self-hosted) with a node upstream that already has the file as binary data (an HTTP Request, a Read/Write File node, or an incoming webhook or form trigger). Extract From File parses a file that is already in the workflow; it does not fetch one on its own.
01Decide where your JSON file is coming from
How you bring a file into n8n depends on where it lives. If it is hosted somewhere reachable over HTTP, an HTTP Request node fetching that URL pulls it in as binary data automatically.
If it is already sitting on disk in a self-hosted n8n setup, a Read/Write File node loads it directly. If it is arriving through a webhook or a form trigger, the binary data is typically already attached to the incoming item, so you only need to reference the right property name instead of fetching anything yourself.
02Confirm the file landed as binary data
Check the item's Binary tab in the node's output before doing anything else. n8n stores incoming files under a binary property, named data by default, though HTTP Request and other nodes let you rename it. If nothing shows up here, nothing downstream will work, so confirm this before adding a parsing node on top of a fetch that silently failed.
03Add the Extract From File node and set it to JSON
Extract From File is the node built to turn binary content into structured data. It is not limited to JSON: the Operations dropdown also covers CSV, HTML, PDF, XLSX, XLS, ODS, RTF, ICS and plain text, plus a mode that just base64-encodes the file. Place it right after whatever node produced your binary data, then set Operation to Extract From JSON.
04Point the Input Binary Field and Destination Output Field at the right names
Two fields matter here. Input Binary Field must match the binary property name you confirmed in step two, data by default, but not if an upstream node renamed it.
Destination Output Field decides where the parsed JSON lands in the output item: whatever name you type there is the key everything downstream needs to read from. It is easy to assume the parsed fields appear as ordinary top-level output the way most nodes produce them. Here they are nested one level down, under that field name.
05Review the output and split arrays if you need one item per record
Run the node and check its output panel. A single JSON object appears with its keys under the Destination Output Field you set.
If the source file was an array, the whole array lands as one n8n item. It does not automatically expand into one item per entry, which surprises people used to nodes that pull list-shaped data from an API. Add a Split Out node afterward, pointed at that array field, if your workflow needs one item per element.
06Pass the parsed data downstream
Once the shape looks right, connect Extract From File, or Split Out if you added one, to whatever comes next: a database node to store it, an IF or Switch node to route on its contents, or another API call built from its fields. From here the data behaves like output from any other node.
| Operation | Typical source |
|---|---|
| Extract From CSV | Spreadsheet exports, tabular reports |
| Extract From JSON | APIs, config files, structured exports |
| Extract From XLSX / XLS | Excel workbooks |
| Extract From PDF | The text layer of a PDF document |
| Extract From HTML | Saved web pages |
| Move File to Base64 String | Any file you need to pass on as raw text |
All eleven operations live in the same node; you only switch the Operation dropdown.
When it doesn't work
Extract From File errors with something like "input is not valid JSON", even though the file extension is .json
Why: The file is JSON Lines (one JSON object per line) or several JSON arrays concatenated together instead of one valid JSON structure. The Extract From JSON operation parses a single structure, and n8n does not read JSONL natively.
Fix: Reformat the file before parsing, for example with a Code node that wraps the lines into a single array, or split it at the source if you control how it is generated.
The node runs with no error, but downstream fields show as undefined
Why: Destination Output Field nested the parsed data under a field name your later expressions never reference.
Fix: Check the output panel for the exact field name, then read downstream from that path, for example {{$json["parsedData"].someKey}}.
Only one item appears downstream instead of one per record
Why: A parsed JSON array lands as a single n8n item by default. Extract From File does not expand it on its own.
Fix: Add a Split Out node after it, pointed at the array field, to turn it into one item per element.
Input Binary Field errors that the property doesn't exist
Why: The name typed there doesn't match what the upstream node used. HTTP Request and other nodes let you rename the binary property away from the data default.
Fix: Open the upstream node's Binary tab and copy the exact property name into Input Binary Field.
Frequently asked questions
What node parses a JSON file in n8n?
The Extract From File node, set to its Extract From JSON operation, converts raw binary JSON data into structured n8n output.
How do I get a JSON file into my n8n workflow in the first place?
Fetch it with an HTTP Request node if it's hosted online, read it with a Read/Write File node if it's on local disk, or take it directly from an upload's binary property.
Why does Extract From File say a file isn't valid JSON when it clearly is?
It's usually JSON Lines, or several JSON objects concatenated without an enclosing array. n8n's JSON operation expects one valid structure, not newline-delimited JSON.
Does a JSON array turn into one item or several in n8n?
One item. The array lands nested under whatever field name you set in Destination Output Field. Add a Split Out node if you want one n8n item per array entry.
Where does the parsed data end up in the output?
Under the field name you enter in Destination Output Field, not spread across the top level automatically the way some other nodes work. Reference that field name in downstream expressions.
Sources and last check
Step order and the general shape of the workflow come from the original walkthrough. Field names and node behaviour were re-checked against n8n's official Extract From File and Split Out documentation, plus a community thread, in September 2026. That check corrected two claims in the earlier version: the binary field is called Input Binary Field, not "Binary Property", and a parsed JSON array lands as a single n8n item instead of expanding into one item per array entry automatically. Reaching that requires a separate Split Out node.
About the author

Impran M N
I've been hooked on technology for as long as I can remember — especially the new tools and AI apps that seem to land every other week. Easy Tech Tuts is where I write up whatever I've just worked out: I do the task in the real product, record the screen, and turn it into the guide I wish I'd found first.



