Convert Arrow to JSON Online
Convert Arrow files to JSON format directly in your browser. No upload required — your data never leaves your device.
About converting Arrow to JSON
Arrow to JSON is usually about getting data out of a Python, Rust or R process and into something that speaks HTTP. A service may dump intermediate results as Arrow IPC because it is cheap to write, and then someone needs those rows as JSON for a JavaScript front end, an API mock, a test fixture or a document store.
Hugging Face datasets are a frequent source. The datasets library saves each split as one or more uncompressed .arrow files in the streaming format, which this converter reads directly. Turning a shard into JSON lets you read prompts, completions and labels as plain records, or pass them to a tool that does not use the datasets library. Large splits are sharded, so convert one shard at a time.
Arrow has far more types than JSON, so some values have to become strings. decimal128 values are written as strings to keep their exact digits, dates and timestamps are written as strings, and int64 or uint64 values above 2^53 become strings. Nested struct and list columns, which Arrow stores natively, map directly onto JSON objects and arrays.
Worked example
A small orders export with an ID, a customer name, a date, an amount (one missing) and a true/false flag, converted with the default settings.
Input (Arrow)
Arrow IPC file (binary, columnar) — shown as a table with its schema
| order_id | customer | order_date | amount | shipped |
|---|---|---|---|---|
| 1001 | Acme Ltd | 2026-03-02 | 249.5 | true |
| 1002 | Brightside Co | 2026-03-02 | 1200 | false |
| 1003 | Acme Ltd | 2026-03-05 | 89.99 | true |
| 1004 | Northwind | 2026-03-07 | NULL | false |
Schema: order_id BIGINT, customer VARCHAR, order_date DATE, amount DOUBLE, shipped BOOLEAN
Output (JSON)
[
{
"order_id": 1001,
"customer": "Acme Ltd",
"order_date": "2026-03-02",
"amount": 249.5,
"shipped": true
},
{
"order_id": 1002,
"customer": "Brightside Co",
"order_date": "2026-03-02",
"amount": 1200,
"shipped": false
},
{
"order_id": 1003,
"customer": "Acme Ltd",
"order_date": "2026-03-05",
"amount": 89.99,
"shipped": true
},
{
"order_id": 1004,
"customer": "Northwind",
"order_date": "2026-03-07",
"amount": null,
"shipped": false
}
]What changes when you convert Arrow to JSON
- The output is one top-level array holding an object per row, indented by two spaces, with keys in Arrow schema order.
- struct columns become nested objects. list, large_list and fixed_size_list columns become arrays, so an embedding stored as fixed_size_list<float32>[768] becomes a 768-number array in every object.
- map columns keep their keys. A map with text keys becomes an object, and a map with other key types becomes an array of {"key": ..., "value": ...} objects.
- decimal128 becomes a string such as "249.50", date32 becomes "2026-03-02", and timestamps become strings like "2026-03-02 09:15:00.123" in UTC.
- Dictionary-encoded columns are written as plain strings. Null stays null, as for the amount on order 1004, and NaN also becomes null because JSON has no NaN value.
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.
Frequently Asked Questions
Why do my float32 embeddings have so many digits in the JSON?
float32 values are widened to 64-bit numbers before they are written, and the widened value is printed in full, so 0.1 becomes 0.10000000149011612. The value is the same to float32 precision. To cut the file size, round in the SQL Query tool with list_transform(embedding, x -> round(x, 6)) and export that result.
Can I convert a file from the Hugging Face datasets cache?
Yes, as long as the shard is under the size limit. The cache files are uncompressed Arrow streams with an .arrow extension, which is exactly what this reader expects. Each shard converts separately.
Is the Arrow schema metadata kept in the JSON?
No. JSON has nowhere to put it, so schema-level metadata, field metadata and extension type names are all dropped. Only column names and values remain.
What is JSON format?
JSON (JavaScript Object Notation) is a lightweight, human-readable format that supports nested structures, making it ideal for APIs and document-oriented data.
Related Tools
Convert JSON to Arrow Online
Convert JSON files to Arrow format directly in your browser. No upload required — your data never leaves your device.
JSON Viewer Online
View and inspect JSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Arrow Viewer Online
View and inspect Arrow files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Filter JSON Files Online
Filter rows in JSON files by column value, directly in your browser. Your data stays on your device.
Convert Arrow to CSV Online
Convert Arrow files to CSV format directly in your browser. No upload required — your data never leaves your device.
Convert Arrow to Parquet Online
Convert Arrow files to Parquet format directly in your browser. No upload required — your data never leaves your device.
Convert Arrow to Excel Online
Convert Arrow files to Excel format directly in your browser. No upload required — your data never leaves your device.