When tabular data needs to travel over an API or land in a database, the JSON array of objects has become the de facto standard. Each element of the array is a self-contained record. The keys are descriptive header names. The values are typed appropriately. Consumers can iterate the array, filter it, transform it, or batch it without any reshaping. This is the shape MongoDB mongoimport expects with --jsonArray. It is the shape most REST batch endpoints accept for bulk creates. It is the shape JavaScript Array iteration methods consume natively. FixTools defaults to this shape because it is the shape that needs the least downstream cleanup.
Some converters wrap the array in an envelope object like { data: [...] } or add metadata such as the row count or conversion timestamp. Those wrappers can be useful in specific API contexts but they are not what you want when you are just converting data for ingestion. FixTools keeps the output minimal: a single JSON array with no surrounding object. If your consumer expects an envelope, wrapping the array in your own envelope after conversion is a one-line operation, but the reverse (stripping an envelope you did not ask for) requires extra tooling. Defaulting to the minimal shape is the right tradeoff.
Inside each array element, the keys come directly from your CSV header row. The order of keys in each object follows the column order of the CSV, which means you can control object property order by reordering columns in your spreadsheet before pasting. Most JSON consumers do not depend on key order, but consistent ordering makes git diffs cleaner when you regenerate the file and improves readability when humans review the output. Numeric, boolean, and null values are typed appropriately based on column-wide inference. String values are JSON-escaped correctly even when they contain quotes, backslashes, or control characters in the source CSV.
For very large CSVs, the array shape scales linearly: a CSV with one hundred thousand rows produces a JSON array with one hundred thousand elements. This is occasionally too large for naive JSON.parse calls in memory-constrained environments, in which case JSON Lines (one object per line, no surrounding array) is a better wire format. FixTools offers a JSONL alternative output for those cases, but for the vast majority of conversions the standard array shape is the right answer and that is what this tool produces by default.