Back to blog

How to Convert CSV to JSON (and Back) Without Writing Code

Scott Delia||
csvjsonno-codetutorial

Converting between CSV and JSON is one of the most common data tasks in any organization. Your database exports CSV, but your API needs JSON. Your vendor sends JSON, but your spreadsheet needs CSV. It sounds simple — until it isn't.

The simple case: flat data

If your data is flat — no nested objects, no arrays, just rows and columns — conversion is straightforward. Every row becomes a JSON object, every column becomes a key.

CSV:

name,email,age
John Doe,john@example.com,32
Jane Smith,jane@example.com,28

JSON:

[
  {"name": "John Doe", "email": "john@example.com", "age": 32},
  {"name": "Jane Smith", "email": "jane@example.com", "age": 28}
]

For this, any online converter works fine. Google "CSV to JSON converter," paste your data, done.

When it gets complicated

Real-world conversions are rarely this clean. Here's what actually happens:

Nested structures. Your API expects {"address": {"street": "123 Main", "city": "Austin"}} but your CSV has flat columns street and city. You need to restructure, not just convert.

Data type coercion. CSV treats everything as strings. JSON has numbers, booleans, and nulls. Is "32" a string or a number? Is "true" a boolean? Is "" null or an empty string?

Array fields. Your CSV has tags: "python,automation,csv" but your JSON schema expects "tags": ["python", "automation", "csv"].

Column renaming. The CSV uses cust_name but the API expects customerName. You need to rename during conversion.

Filtering and transformation. You don't want all rows — only active customers, only orders from the last 30 days, only records where amount > 100.

Once you need any of these, a simple converter won't cut it.

Your options

Option 1: Online converters

Best for flat, simple data. Paste in, get out. No transformation logic, no filtering, no restructuring. Free but limited.

Option 2: Python or JavaScript

Maximum flexibility. Write a script with pandas or json module. Handle any edge case. But you're writing and maintaining code for what should be a simple task.

Option 3: Spreadsheet formulas

Export from CSV, manually restructure, export to JSON. Tedious and error-prone for anything beyond a few columns.

Option 4: Describe what you want

This is the Data Shepherd approach. Upload your CSV and tell it:

"Convert to JSON. Nest street, city, and zip under an address object. Split the tags column on commas into an array. Rename cust_name to customerName. Only include rows where status is active."

The AI generates a script that handles the conversion with all your requirements. You preview the result, approve it, and download.

Next time you get the same file, run the saved transformation in one click.

Which approach should you use?

ScenarioBest option
Quick one-time flat conversionOnline converter
Complex logic, millions of rowsPython script
Recurring conversion with transformationsData Shepherd
Ad-hoc conversion with restructuringData Shepherd

The key question is: will you do this more than once? If yes, save yourself the time and set up a reusable transformation.

Ready to automate your data transformations?

Try Data Shepherd free — describe what you need, and let AI handle the rest.

Get Started Free