CSV and JSON operations
CSV and JSON workflows for small operations teams
By Tool Factory. Published .
Use browser conversion for a bounded file task with explicit format rules. Keep repeatable production transfers in a controlled pipeline.
What did eight conversion tests show?
8 of 8 fixed synthetic cases passed on 2026-10-06. These results test the selected operation adapter.
| Case | Expected behavior | Result |
|---|---|---|
| union-columns | Includes fields from later records. | Pass |
| nested-rows | Keeps separate nested records. | Pass |
| quoted-cells | Quotes embedded comma, quote, and line break. | Pass |
| empty-records | Distinguishes missing fields from null. | Pass |
| duplicate-headers | Rejects duplicate dictionary headers. | Pass |
| ragged-row | Rejects inconsistent dictionary row widths. | Pass |
| ambiguous-path | Rejects ambiguous nested field paths. | Pass |
| text-identifier | Keeps leading zeros in CSV text identifiers. | Pass |
How can you reproduce these checks?
Eight fixed synthetic fidelity cases run through the actual selected operation adapter. Expected outputs use repository regression expectations and explicit CSV text checks.
Reproduce the benchmark. Runtime: v24.19.0.
Download inputs, expected outputs, observed outputs, and errors.
union-columns: inspect input and result
Operation: JSONToCSV. Arguments: [",","\n"].
Input
[{"name":"Ada"},{"name":"Lin","extra":"kept"}]Observed output or rejection
name,extra
Ada,
Lin,kept
nested-rows: inspect input and result
Operation: JSONToCSV. Arguments: [",","\n"].
Input
[{"a":{"b":1}},{"a":{"c":2}}]Observed output or rejection
a.b,a.c
1,
,2
quoted-cells: inspect input and result
Operation: JSONToCSV. Arguments: [",","\r\n"].
Input
[{"a":{},"b":[],"c":null,"d":"a,\"b\"\r\nx"}]Observed output or rejection
a,b,c,d
{},[],null,"a,""b""
x"
empty-records: inspect input and result
Operation: JSONToCSV. Arguments: [",","\n"].
Input
[{}, {"a":null}, {}, {"a":1}, {}]Observed output or rejection
a
null
1
duplicate-headers: inspect input and result
Operation: CSVToJSON. Arguments: [",","\n","Array of dictionaries"].
Input
a,a
1,2Observed output or rejection
Duplicate CSV header. Use unique names or choose Array of arrays.ragged-row: inspect input and result
Operation: CSVToJSON. Arguments: [",","\n","Array of dictionaries"].
Input
a,b
1Observed output or rejection
CSV row 2 has 1 cells; expected 2. Use matching widths or Array of arrays.ambiguous-path: inspect input and result
Operation: JSONToCSV. Arguments: [",","\n"].
Input
{"a.b":1,"a":{"b":2}}Observed output or rejection
Ambiguous flattened path collision. Rename dotted keys or use one consistent nested structure.text-identifier: inspect input and result
Operation: CSVToJSON. Arguments: [",","\n","Array of dictionaries"].
Input
id,value
00123,2Observed output or rejection
[
{
"id": "00123",
"value": "2"
}
]What do these results leave untested?
Eight samples do not cover every input. No speed, competitor, browser network, citation, or time-saving measurement occurred. CSV values remain strings. Reverse conversion does not reconstruct nested JSON paths. These results do not prove general correctness or browser privacy.
Which workflow fits the task?
A small operations team can use CSV for rows and JSON for structured records. Conversion requires decisions about headers, types, empty values, and nested fields. Agree on those decisions before sharing the result.
Start with the CSV and JSON converter. Check syntax with the JSON formatter. The private conversion guide explains encoding and spreadsheet formula risks.
Choose the next step
Read the selection criteria, compare a spreadsheet workflow, estimate your labor cost, then use the implementation checklist.