Data Converters
28 free toolsConvert between JSON, CSV, YAML, XML, TOML, SQL, and typed code.
Data converters turn one structured format into another without a script: CSV to JSON, JSON to a Pydantic model or Go struct, YAML to JSON, XML to JSON, and back. Each converter shows the exact options it applied (delimiters, quoting, key order) so the output is predictable when you paste it into a pipeline. Most of them link to a guide on the edge cases that trip up a plain library call.
Everything here runs in your browser: files and text are processed locally and never uploaded.
All 28 tools
CSV ↔ JSON
Convert between CSV and JSON formats
YAML ↔ JSON
Bidirectional conversion between YAML and JSON
TOML ↔ JSON
Bidirectional conversion between TOML and JSON
XML ↔ JSON
Bidirectional conversion between XML and JSON
JSON → TypeScript Types
Generate TypeScript interfaces from JSON samples
JSON → Zod Schema
Generate Zod validation schemas from JSON samples
JSON → Go Struct
Generate Go structs with json tags from JSON
JSON → Pydantic Model
Generate Pydantic v2 models from JSON
JSON → Rust (Serde)
Generate Rust serde structs from JSON
JSON → Kotlin Data Class
Generate Kotlin data classes from JSON
JSON → C# Class
Generate C# classes with System.Text.Json attributes from JSON
JSON → Java Class
Generate Java classes with Jackson annotations from JSON
JSON → GraphQL Schema
Generate GraphQL SDL types from JSON
JSON Diff
Compare two JSON objects structurally
JSON → JSDoc Typedefs
Generate JSDoc @typedef definitions from JSON
CSV → SQL INSERT
Convert CSV rows into SQL INSERT statements
SQL Explainer
Explain any SQL query in plain English, clause by clause
JSON ↔ Query String
Convert between URL query params and JSON objects
JSON → CSV
Convert a JSON array of objects into CSV
CSV → Markdown Table
Convert CSV data into a GitHub-flavored Markdown table
JSON Schema Generator
Generate JSON Schema from sample JSON data
Excel → JSON / CSV
Convert Excel spreadsheets (XLSX, XLS, ODS) to JSON or CSV
INI ↔ JSON
Bidirectional conversion between INI files and JSON
DBML → SQL + ER Diagram
Paste DBML or SQL DDL to get an ER diagram and clean DDL for Postgres, MySQL, SQL Server, Oracle, or DBML
JSON Flattener / Unflattener
Flatten nested JSON to path keys and unflatten it back
JSON Schema Validator
Validate a JSON document against a JSON Schema with per-error paths and line numbers
CSV Delimiter Converter
Convert CSV between commas, semicolons, tabs, and pipes
CSV Viewer
Open CSV files as a sortable, filterable table without uploading
Guides
From the blog: the mechanisms, standards, and edge cases behind these tools.
- JSON to C#, Java, GraphQL: What Each Converter Guesses One JSON sample, four targets: how a JSON to C# class, Java class, GraphQL schema and JSDoc typedef converter each guess what JSON can't tell them. Sep 10, 2026 · uses JSON → TypeScript Types, JSON → Go Struct, JSON → Kotlin Data Class +5
- Generating JSON Schema From a Sample: What Inference Can't Know A schema inferred from one JSON sample encodes only what that sample happened to contain: every key becomes required, null becomes a type, a status string is not an enum, and an empty array accepts anything. What our draft-07 generator emits in each case, validated against mutated payloads with Ajv 8 — including the overlapping oneOf trap that makes a sample fail its own schema. Sep 3, 2026 · uses JSON → TypeScript Types, JSON → Zod Schema, JSON → Go Struct +3
- JSON to Go Struct: What the Converter Can't Know A JSON to Go struct converter sees one sample. Why it emits int64 for every whole number, interface{} for null, and never time.Time — and exactly what to fix. Sep 9, 2026 · uses JSON → TypeScript Types, JSON → Go Struct, JSON → Rust (Serde) +2
- Why Your CSV Opens in One Column in Excel (and How to Fix It) Excel splits CSV files on your locale's list separator, not on commas. Why decimal-comma locales get semicolons, what sep= and BOMs do, and how delimiter detection works. Sep 28, 2026 · uses CSV ↔ JSON, CSV → Markdown Table, CSV Delimiter Converter +1
- Why Excel Dates and IDs Break When You Export Them (45292 Explained) The real mechanism behind Excel turning dates into numbers like 45292, stripping leading zeros from IDs, and mangling long numbers into scientific notation — with the fixes. Jul 27, 2026 · uses CSV ↔ JSON, JSON → TypeScript Types, JSON → Pydantic Model +1
- TOML to JSON: Tables, Dates, and Big Integers That Don't Survive Why pyproject.toml and Cargo.toml fail with "defining a table twice" and duplicate-key errors, what [[array of tables]] actually means, what TOML 1.1 changed about inline tables, and which TOML types (datetimes, 64-bit integers, inf/nan) JSON cannot represent. Sep 26, 2026 · uses YAML ↔ JSON, TOML ↔ JSON, INI ↔ JSON
- JSON Diff Is Not Text Diff: Key Order, 1 vs 1.0, and What 'Changed' Means A line diff of two JSON documents reports changes that are not changes (key order, whitespace, 1 vs 1.0) and hides changes that are (1 vs "1", null vs missing). What RFC 8259 actually says, how a structural diff decides, where ours uses index matching instead of LCS, and JSON Patch as the machine-readable answer. Sep 3, 2026 · uses JSON Diff, JSON ↔ Query String, JSON Flattener / Unflattener
- XML to JSON Has No Canonical Mapping: Attributes, Repeats, and Lost Order XML and JSON have different data models, so every converter invents a convention: BadgerFish, Parker, GData and fast-xml-parser disagree on attributes, text nodes and repeats. Executed examples of the singleton-vs-array trap, mixed content, type coercion, and why element order cannot survive the trip. Sep 3, 2026 · uses YAML ↔ JSON, XML ↔ JSON, JSON → CSV
- JSONPath vs jq: One Selects, One Transforms JSONPath vs jq: one selects nodes, one is a transformation language. A syntax cheat sheet, RFC 9535's rules, and where implementations still disagree. Aug 25, 2026 · uses JSON ↔ Query String, JSON Flattener / Unflattener, JSON Schema Validator
- Generate an ER Diagram From an Existing SQL Schema (No DBML Required) Most ER-diagram guides assume you are modeling a database from scratch. Usually you already have one — a pg_dump, a migration, a CREATE TABLE block — and just want to see it. How DDL-to-diagram works, where DBML fits in the middle, and why real dumps trip parsers. Aug 20, 2026 · uses CSV → SQL INSERT, SQL Explainer, DBML → SQL + ER Diagram
- JSON to Pydantic Models: How One Sample Lies to the Generator Why auto-generated Pydantic models are a first draft, not a schema: int vs float, invisible optionality, empty arrays, stringly-typed dates, camelCase aliases, and the v1/v2 traps — with hardened before/after code. Aug 19, 2026 · uses JSON → TypeScript Types, JSON → Zod Schema, JSON → Pydantic Model
- The YAML Norway Problem and Other Values That Change Type Why NO becomes false, 0755 becomes 493 and 1:30 becomes 90 in YAML 1.1 parsers but not in YAML 1.2, with real output from PyYAML, Ruby Psych, and the yaml npm package. Sep 27, 2026 · uses YAML ↔ JSON, INI ↔ JSON