Ir a la herramienta
ViewCSV
Sin subir archivos

Convertir CSV a JSON

orders.csv· DATOS DE EJEMPLO15 filas · 8 columnas
Tipos de valor
La detección se hace por columna y solo cuando todos los valores encajan, así que los identificadores con ceros a la izquierda y los enteros mayores que 9 007 199 254 740 991 se quedan como texto.
Las columnas user.name y user.email se convierten en un único objeto «user» con «name» y «email».
[
  {
    "order_id": "001041",
    "customer": "Martina Sánchez",
    "city": "Barcelona",
    "product": "Monitor 27\"",
    "quantity": "6",
    "unit_price": "231.53",
    "order_date": "2026-01-08",
    "status": "shipped"
  },
  {
    "order_id": "001042",
    "customer": "Mateo Martínez",
    "city": "Bilbao",
    "product": "Notebook A5",
    "quantity": "8",
    "unit_price": "143.73",
    "order_date": "2026-02-08",
    "status": "paid"
  },
  {
    "order_id": "001043",
    "customer": "Valeria Gómez",
    "city": "Málaga",
    "product": "USB-C cable",
    "quantity": "6",
    "unit_price": "87.50",
    "order_date": "2026-03-25",
    "status": "paid"
  },
  {
    "order_id": "001044",
    "customer": "Lucía Sánchez",
    "city": "Barcelona",
    "product": "Notebook A5",
    "quantity": "1",
    "unit_price": "91.58",
    "order_date": "2026-04-08",
    "status": "paid"
  },
  {
    "order_id": "001045",
    "customer": "Valeria López",
    "city": "Málaga",
    "product": "Desk lamp",
    "quantity": "3",
    "unit_price": "",
    "order_date": "2026-05-05",
    "status": "pending"
  },
  {
    "order_id": "001046",
    "customer": "Martina López",
    "city": "Madrid",
    "product": "Monitor 27\"",
    "quantity": "8",
    "unit_price": "79.06",
    "order_date": "2026-06-08",
    "status": "pending"
  },
  {
    "order_id": "001047",
    "customer": " Sofía Rodríguez ",
    "city": "Zaragoza",
    "product": "Coffee beans 1kg",
    "quantity": "5",
    "unit_price": "64.50",
    "order_date": "2026-07-23",
    "status": "paid"
  },
  {
    "order_id": "001048",
    "customer": "Daniel López",
    "city": "Sevilla",
    "product": "Desk lamp",
    "quantity": "6",
    "unit_price": "105.65",
    "order_date": "2026-08-14",
    "status": "pending"
  },
  {
    "order_id": "001049",
    "customer": "Pablo Gómez",
    "city": "Málaga",
    "product": "Chair, ergonomic",
    "quantity": "7",
    "unit_price": "57.68",
    "order_date": "2026-09-09",
    "status": "pending"
  },
  {
    "order_id": "001050",
    "customer": "Pablo García",
    "city": "Barcelona",
    "product": "Desk lamp",
    "quantity": "6",
    "unit_price": "206.44",
    "order_date": "2026-01-14",
    "status": "shipped"
  },
  {
    "order_id": "001051",
    "customer": "Mateo Pérez",
    "city": "Barcelona",
    "product": "Chair, ergonomic",
    "quantity": "5",
    "unit_price": "204.15",
    "order_date": "2026-02-22",
    "status": "refunded"
  },
  {
    "order_id": "001052",
    "customer": "Leo Gómez",
    "city": "Zaragoza",
    "product": "USB-C cable",
    "quantity": "1",
    "unit_price": "71.39",
    "order_date": "2026-03-02",
    "status": "shipped"
  },
  {
    "order_id": "001053",
    "customer": "Hugo López",
    "city": "Barcelona",
    "product": "Coffee beans 1kg",
    "quantity": "2",
    "unit_price": "23.63",
    "order_date": "2026-04-12",
    "status": "refunded"
  },
  {
    "order_id": "001054",
    "customer": "Pablo Rodríguez",
    "city": "Zaragoza",
    "product": "Desk lamp",
    "quantity": "7",
    "unit_price": "11.07",
    "order_date": "2026-05-08",
    "status": "pending"
  },
  {
    "order_id": "001043",
    "customer": "Valeria Gómez",
    "city": "Málaga",
    "product": "USB-C cable",
    "quantity": "6",
    "unit_price": "87.50",
    "order_date": "2026-03-25",
    "status": "paid"
  }
]

15 filas · 1 archivo

Abre o pega un archivo CSV y el JSON aparece junto a las opciones a medida que las cambias. De forma predeterminada, cada fila se convierte en un objeto con los nombres de las columnas como claves; elige un array de arrays, un objeto con un array por columna o JSON Lines cuando el código que lo recibe espere esa estructura. Todos los valores se quedan como cadenas por defecto, así que 00731 y los identificadores de 20 cifras salen exactamente como estaban; activa la detección de números solo cuando una columna deba convertirse en números JSON y en true/false. Para archivos de configuración, CSV a YAML escribe las mismas filas en YAML. El archivo se convierte en tu navegador y nunca se sube.

Cómo convertir un CSV a JSON

  1. Abre un archivo .csv, .tsv o .txt, arrástralo sobre la herramienta o pega las filas. Se detectan el delimitador y la marca de orden de bytes UTF-8 o UTF-16; en Configuración de importación puedes elegir otro delimitador o una codificación heredada como Windows-1252 o Shift_JIS.
  2. Elige la Estructura del JSON. La vista previa muestra las primeras 200 filas de la salida exacta que contendrá la descarga.
  3. Ajusta Tipos de valor, Celdas vacías, el anidamiento y la sangría, y después elige Descargar JSON o Copiar.

Para convertir muchos archivos con los mismos ajustes, elige Por lotes: convertir varios archivos y selecciónalos todos juntos: cada archivo se convierte por turno y los resultados se descargan en un solo ZIP.

Opciones de salida JSON: objetos, arrays o JSON Lines

Array de objetosUn objeto por fila, con los encabezados como claves: [{"sku": "00731", …}]. Es la estructura que esperan la mayoría de las API y del código JavaScript.
Array de arraysPrimero la fila de encabezados y después cada fila como una lista. Es la salida más pequeña, y el orden de las columnas se conserva de forma explícita.
Objeto con un array por columna{"sku": ["00731", "00732"], …}: práctico para bibliotecas de gráficos y herramientas de data frames.
JSON LinesUn objeto JSON por línea (JSON Lines), sin un array que los envuelva. Va bien para canalizaciones de registros, cargas en BigQuery y procesamiento línea a línea.
Mantener todos los valores como textoCada celda se convierte en una cadena JSON, exactamente como está escrita en el archivo. Es la opción predeterminada.
Detectar números y true/falseUna columna solo se convierte en números JSON si todos sus valores no vacíos son números simples que sobreviven a la conversión: sin ceros a la izquierda, con 15 cifras significativas como máximo y sin coma decimal. Las columnas true/false pasan a ser booleanas. Las fechas siguen siendo cadenas.
Celdas vacíasEscribe "" o null, u omite la clave en ese objeto.
Anidar nombres de columna con puntouser.name y user.email se convierten en {"user": {"name": …, "email": …}}. Si un nombre es a la vez un valor y un elemento padre (user y user.name), esas columnas se quedan sin anidar y la herramienta te lo indica.

Encabezados, valores entre comillas e identificadores en el JSON

  • Las comas, comillas ("") y saltos de línea dentro de un valor entre comillas se leen según la RFC 4180 y se escriben con los escapes normales de las cadenas JSON (\n, \").
  • Los nombres de los encabezados se usan exactamente como están escritos, con espacios y escrituras no latinas incluidos. Un encabezado vacío pasa a ser Column 3 y uno repetido, name (2), de modo que ningún valor se sobrescribe.
  • Los encabezados como __proto__ o constructor se escriben como claves normales.
  • Una fila con más valores que encabezados recibe claves adicionales llamadas Column 4, Column 5…; una fila más corta recibe valores vacíos. No se descarta nada.
  • La salida con tipos nunca convierte 0012 en 12 ni un número de pedido de 19 cifras en un decimal redondeado: una columna así se queda como texto.

Problemas habituales al convertir CSV a JSON

  • Todo está en una sola clave. El delimitador no se detectó bien; elige Coma, Punto y coma, Tabulación o Barra vertical en Configuración de importación y vuelve a abrir el archivo.
  • Las letras con tilde se ven como é. El archivo no está en UTF-8. Elige su codificación (con frecuencia Windows-1252 en las exportaciones de versiones antiguas de Excel) en Configuración de importación.
  • Una columna numérica se quedó como texto. Al menos un valor no es un número simple, por ejemplo 1,5, 12 kg o un valor con un cero a la izquierda. Busca en la columna con el visor de CSV para encontrarlo.
  • El error de comillas indica un registro. En ese registro se abren comillas que nunca se cierran. Corrígelo en el editor de CSV o revisa la exportación del sistema de origen.

Límites y privacidad

Los archivos de hasta 25 MB, 100 000 filas o 2 millones de celdas se abren con vista previa en directo. Los archivos más grandes se convierten por secuencias: el archivo se lee dos veces por bloques (una para conocer las columnas y los tipos, otra para escribir), la vista previa se sustituye por un aviso y la descarga incluye todas las filas. Cada archivo de salida está limitado a 4 GB.

La conversión se ejecuta en un proceso en segundo plano de esta pestaña, así que la página sigue respondiendo y Cancelar la detiene. El CSV nunca se envía a un servidor.

Ejemplo: una lista de productos como objetos JSON

Una lista de productos con un SKU con ceros a la izquierda y una coma entre comillas, convertida con los ajustes predeterminados (todo como texto, array de objetos, sangría de 2 espacios). Con Detectar números y true/false, price pasa a ser 34.9 e in_stock pasa a ser true, mientras que sku se queda como "00731".

CSV
sku,name,price,in_stock
00731,"Desk lamp, brass",34.90,true
00732,Cable tidy,4.50,false
JSON
[
  {
    "sku": "00731",
    "name": "Desk lamp, brass",
    "price": "34.90",
    "in_stock": "true"
  },
  {
    "sku": "00732",
    "name": "Cable tidy",
    "price": "4.50",
    "in_stock": "false"
  }
]

Preguntas frecuentes

¿Por qué los números aparecen entre comillas de forma predeterminada?

Porque el CSV no tiene tipos: 00731, 1.50 y 2024-03-01 son simplemente texto. Mantenerlos como cadenas garantiza que el JSON diga exactamente lo mismo que el archivo. Elige la detección de números cuando sepas que una columna contiene cantidades.

¿Puedo convertir aquí un JSON de vuelta a CSV?

Todavía no. Esta página solo convierte CSV y TSV a JSON.

¿JSON Lines es lo mismo que NDJSON?

En la práctica, sí: en ambos casos se trata de un valor JSON completo por línea, separado por caracteres de salto de línea.

Normas y referencias