CSV to JSON Converter

Free browser-based CSV to JSON converter with automatic type inference — paste CSV, get pretty-printed JSON instantly. No sign-up, no upload; nothing leaves your device.

Actualizado

Share:
Privacy first: conversion happens entirely in your browser — nothing is uploaded to a server.

Preguntas Frecuentes

Does this converter handle commas or quotes inside a CSV field?

Yes. The parser follows RFC 4180 quoting rules: a field wrapped in double quotes can contain commas, quotes, or embedded line breaks, and a literal quote inside it is written as two double quotes (""), which the converter un-escapes automatically. A comma outside quotes is always a column separator, so "Doe, John" parses as a single field containing a comma rather than splitting into two fields — the same rule Excel and Google Sheets use when they export quoted CSV.

What happens if two columns in my CSV have the same header name?

The later column silently overwrites the earlier one. Each row becomes a single JSON object keyed by header name, and JavaScript object keys can't repeat, so if your source file has two columns both labeled "Notes" (common after a spreadsheet merge or export bug), only the second column's values survive in the JSON — the first column's data is dropped without a warning. Rename duplicate headers before pasting if you need to keep both columns.

Can this tool convert CSV files that use semicolons or tabs instead of commas?

This page is comma-only, matching the plain "CSV to JSON" use case most people search for. If your file is semicolon- or tab-delimited — common in European locales where the comma is used as the decimal separator, or in files exported from database tools — use the full CSV/JSON converter, which auto-detects the delimiter or lets you choose comma, semicolon, tab, or pipe explicitly.

What happens if a CSV row has more or fewer fields than the header row?

Rows are matched to headers by position, not by count, and nothing here throws an error. A short row (fewer fields than headers) fills the missing trailing values with null; a long row (more fields than headers) has its extra values silently discarded, since only as many fields as there are headers get read. Ragged CSV — often caused by a stray or missing delimiter partway through a file — won't be flagged, so check row lengths first if exact column alignment matters.

¿Por qué al convertir CSV a JSON mis códigos postales o números de cuenta terminan con el valor equivocado?

Esto ocurre porque el conversor infiere los tipos a partir del patrón de texto de cada celda, y una cadena de dígitos simple como 02138 o 4025 coincide con el patrón de entero sin importar lo que en realidad represente. Una vez tratada como número, parseInt("02138") devuelve 2138 — el cero inicial desaparece, porque los números JSON no tienen concepto de dígitos "con relleno" como sí lo tiene una cadena de texto. El CSV en sí no puede marcar un campo como "mantener esto como texto": las comillas del RFC 4180 solo controlan cómo se escapan las comas, las comillas y los saltos de línea, no el tipo de dato de lo que hay dentro de ellas, así que un "02138" entre comillas y un 02138 sin comillas se interpretan igual. Si estás convirtiendo códigos postales, números de teléfono, SKUs o números de cuenta, usa el conversor completo de CSV/JSON y desactiva la inferencia de tipos para que cada columna se conserve como cadena de texto, y luego vuelve a aplicar el tipado solo donde realmente quieras números.

¿Cuál es un ejemplo práctico de cuándo necesitarías convertir CSV a JSON?

El caso más habitual es trasladar una exportación de hoja de cálculo a algo que solo entiende JSON. Un equipo de marketing exporta un CSV de leads desde un CRM y necesita enviarlos mediante POST a un webhook o a una automatización de Zapier/Make que espera un cuerpo en JSON. Un desarrollador backend tiene un CSV de datos de productos de un proveedor y necesita insertarlos en bloque en MongoDB o Firestore, que almacenan documentos tipo JSON en lugar de filas y columnas. Un ingeniero de QA toma una hoja de cálculo de casos de prueba y la convierte en un archivo fixture en JSON que consume un ejecutor de pruebas. En cada caso, la fuente de verdad es tabular (una hoja de cálculo, una exportación de base de datos, una descarga del CRM), pero el destino — una API, un almacén de documentos, un entorno de pruebas — solo acepta JSON, así que una conversión rápida y precisa evita escribir un analizador para una tarea que se hace una o dos veces al mes.

¿El CSV es realmente un formato estandarizado, o cada herramienta lo exporta de forma ligeramente distinta?

El CSV es anterior a cualquier especificación formal por décadas — las herramientas de hojas de cálculo y los sistemas mainframe llevaban escribiendo archivos de texto delimitados por comas desde los años 70, cada uno con sus propias peculiaridades en cuanto a comillas y finales de línea. El RFC 4180, publicado por Y. Shafranovich en 2005, documenta las convenciones comunes (finales de línea CRLF, comillas dobles opcionales, comillas duplicadas para escapar), pero es explícitamente informativo, no un estándar vinculante. En la práctica, el "CSV" sigue variando: Excel en algunas configuraciones regionales europeas exporta archivos delimitados por punto y coma porque allí la coma es el separador decimal, algunas herramientas usan solo LF en lugar de CRLF, y el UTF-8 con BOM es habitual en exportaciones de Windows. El JSON, en cambio, sí cuenta con estándares genuinos detrás — ECMA-404 y RFC 8259 — lo que en parte explica por qué se interpreta de forma idéntica en todas partes, mientras que los analizadores de CSV todavía tienen que adivinar el dialecto.

¿Es cierto que un archivo CSV siempre se convierte en la misma estructura de JSON, números incluidos?

No — es un error común. Las filas y columnas de un CSV solo pueden producir un array JSON plano de objetos planos; no hay forma de expresar anidamiento en CSV, así que este conversor (o cualquier herramienta de CSV a JSON) no puede generar objetos o arrays anidados sin importar cómo estén organizados los datos. El tipo de cada valor tampoco es fijo: como el CSV almacena todo como texto, "42" podría significar el número 42 o la cadena de texto "42" según el contexto, y distintas herramientas infieren los tipos con reglas distintas. Las reglas de este conversor (true/false para booleanos, patrones de dígitos para números, vacío/null/n-a para null) son un conjunto razonable de valores predeterminados, no una garantía de que coincida con cualquier otro analizador de CSV con el que compares el resultado, incluido el propio importador de CSV de un programa de hojas de cálculo.

¿Qué ocurre si mi archivo CSV tiene una celda de encabezado vacía o encabezados con caracteres poco habituales?

La fila de encabezados proporciona los nombres de las claves JSON directamente, carácter por carácter, incluyendo espacios, signos de puntuación o incluso emojis si tu archivo de origen los tiene — las claves JSON son simplemente cadenas de texto, así que casi cualquier cosa es válida. La única excepción es una celda de encabezado completamente vacía: en lugar de producir una clave sin nombre, el conversor recurre a un marcador de posición como column1, column2, que coincide con la posición de la celda en la fila, de modo que cada valor sigue teniendo un lugar en el objeto de salida, aunque bajo un nombre genérico en vez de la etiqueta faltante. Si quieres nombres de clave más limpios y adecuados para código — sin espacios, con mayúsculas y minúsculas consistentes, sin caracteres especiales que requieran notación de corchetes en JavaScript — conviene renombrar la fila de encabezados en tu hoja de cálculo de origen antes de pegarla, ya que el conversor mapea los encabezados tal cual, sin normalizarlos ni depurarlos por ti.

Embed This Tool

Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.

Copy & paste this HTML
<iframe src="https://getthetoolbox.com/embed/csv-to-json" title="CSV to JSON Converter — The Toolbox" width="100%" height="420" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/converter-tools/csv-to-json?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free CSV to JSON Converter</a> by The Toolbox</p>

Acerca del conversor de CSV a JSON

Pega un archivo CSV en el panel izquierdo y el conversor de CSV a JSON lo transforma en un array JSON correctamente tipado en el panel derecho, actualizándose con cada pulsación de tecla. Funciona por completo del lado del cliente, en tu navegador — no se sube nada a ningún servidor, así que una exportación de hoja de cálculo llena de correos de clientes, IDs de pedidos o nombres de sistemas internos nunca toca un servidor externo. Copia el resultado o descárgalo como converted.json, y visita el conversor de JSON a CSV si necesitas ir en la dirección contraria.

Por qué el CSV necesita interpretación, no solo un cambio de formato

El CSV (valores separados por comas) no tiene un sistema de tipos nativo — cada campo, ya parezca un número, una fecha o un booleano, se almacena como texto plano. Lo más parecido a una especificación formal para CSV es el RFC 4180 (2005), que define cómo se separan los campos y cómo se escapan los caracteres especiales: un campo que contenga una coma, una comilla doble o un salto de línea debe ir entre comillas dobles, y una comilla doble literal dentro de un campo entre comillas se escribe como dos comillas dobles (""). El campo "Smith, ""Bob"" Robert" se decodifica como el texto literal Smith, "Bob" Robert. El JSON, en cambio, sí tiene un sistema de tipos real (aunque reducido) — cadenas, números, booleanos, null, objetos y arrays — así que convertir CSV a JSON implica decidir, celda por celda, qué tipo representa realmente cada fragmento de texto.

Cómo toma esa decisión este conversor

La primera fila siempre se trata como la fila de encabezados, y cada fila posterior se convierte en un objeto JSON con esas claves. Para cada celda, el conversor comprueba, en orden: si está vacía, o contiene null o n/a (sin distinguir mayúsculas/minúsculas), se convierte en null de JSON; true/false (sin distinguir mayúsculas/minúsculas) se convierte en un booleano de JSON; un entero simple como 42 o -7 se convierte en un número JSON; un decimal como 3.14, .5 o 1.2e10 se convierte en un número JSON; cualquier otra cosa se mantiene como cadena de texto JSON. Así, la entrada name,age,active,notes seguida de Alice,30,true,N/A se convierte en:

[
  { "name": "Alice", "age": 30, "active": true, "notes": null }
]

Dónde esto se vuelve ambiguo

Como la inferencia se basa en patrones, no puede conocer la intención real. Un código postal como 02138 o un número de cuenta almacenado como dígitos simples coincide con el patrón de entero y se convierte en número, eliminando silenciosamente el cero inicial — parseInt("02138") da 2138. Una columna de "sí/no" no se reconoce como booleano, ya que solo las palabras literales true/false activan esa regla, así que se mantiene como texto. Y si una celda de encabezado está vacía, la herramienta recurre a column1, column2, y así sucesivamente, en lugar de generar una clave vacía.

Resultado y herramientas relacionadas

El JSON resultante siempre se imprime con formato legible, con una sangría de 2 espacios. Esta página asume una entrada delimitada por comas; si tu archivo de origen usa punto y coma, tabulaciones o barras verticales, o si quieres desactivar por completo la inferencia de tipos y mantener cada valor como cadena de texto, el conversor completo de CSV/JSON admite detección automática de delimitadores y un modo de cadena sin procesar, además de esta versión más simple de pegar y listo.

Por qué convertir CSV a JSON

Las exportaciones de hojas de cálculo y bases de datos son casi siempre en CSV, pero la mayoría de las APIs, bases de datos NoSQL y herramientas de JavaScript esperan JSON. Este conversor elimina el paso manual de escribir a mano un analizador para una importación puntual, crear un payload de prueba para un webhook, o poblar una base de datos de documentos a partir de un CSV que un colega acaba de entregarte.