FixTools treats the first non-blank row of your CSV as the header row by default. Every column header becomes a key in every output object. The mapping is verbatim: a header First Name with a space becomes the JSON key First Name with a space. JSON allows any string as a key including spaces and punctuation, so the output is technically valid even with awkward keys. Whether your downstream code can use those keys conveniently depends on the language: JavaScript and Python need bracket notation to access keys with spaces, whereas Go and Rust struct tags allow arbitrary key text.
Duplicate headers are an edge case worth understanding. If two columns have identical header text, the second column overrides the first in the resulting object because object keys are unique. The output JSON only carries one value per duplicated key per row, which is whichever column came last. To preserve both values, rename one of the duplicate headers in your spreadsheet before exporting. The converter does not auto-disambiguate by appending suffixes because that would silently rename keys, which is worse than the duplicate-override behaviour for most workflows.
Empty header cells produce empty-string keys, which is technically valid JSON but rarely what you want. If a column has an accidentally blank header, the corresponding values land under the key "" in every output object. This usually indicates a CSV authoring issue: either the column is unused and should be deleted, or someone forgot to label it. The converter will warn in the preview when it detects empty headers, giving you a chance to fix the source before downloading the JSON.
For users who want sanitised identifiers rather than verbatim headers, the recommended workflow is to add a header transformation step in your CSV before pasting. Rename First Name to firstName in the spreadsheet, save, and convert. This keeps the converter logic simple and gives you full control over the resulting key names. Alternative approaches such as automatic camelCase conversion can be surprising when headers contain special characters or non-ASCII text, so explicit user control is the safer default.