Skip to content
uencoder
TUTORIAL

How to Convert CSV to JSON

Transform CSV tabular data into JSON objects for programmatic access and API consumption.

Problem

You have data in CSV format and need it as JSON for processing in JavaScript or an API.

Prerequisites

  • Understanding of CSV format
  • Understanding of JSON arrays and objects

Steps

  1. 1. Parse the CSV header and rows

    Read the first line as the header row to get field names. Read each subsequent line as a data row, splitting on the delimiter (comma by default). Handle quoted fields that contain commas or newlines by respecting CSV quoting rules.

    Input
    name,age,city\nAlice,30,NYC
    Output
    headers: [name, age, city]
  2. 2. Map rows to JSON objects

    For each data row, create a JSON object where each header field is a key and the corresponding cell is the value. Decide whether to infer types (numbers, booleans) or keep all values as strings. Type inference is convenient but can misinterpret values like zip codes.

    Input
    Alice,30,NYC
    Output
    {"name":"Alice","age":30,"city":"NYC"}
  3. 3. Assemble and output the JSON array

    Collect all row objects into a JSON array. Format the output with indentation for readability if needed. Validate that the number of fields in each row matches the header count.

    Input
    [{Alice},{Bob}]
    Output
    JSON array of objects

Expected result

A JSON array of objects, each representing a CSV row with header-derived keys.

Common errors

Comma inside a quoted field splits incorrectly
Use a proper CSV parser that respects quoting rules. Do not split on commas with a simple string split.
Zip codes or IDs lose leading zeros
If you infer types, numeric conversion strips leading zeros. Keep such fields as strings or use a schema to specify types.

Troubleshooting

  • If rows have inconsistent field counts, check for unquoted commas or multiline fields in the CSV.
  • For large CSV files, use a streaming parser to avoid loading everything into memory.

Security limits

  • CSV injection (formula injection) can affect spreadsheet applications. Sanitize cells that start with =, +, -, or @ if the output will be opened in a spreadsheet.

Related tools

Related tasks

Ready to run it?

References