CSV ⇄ JSON

Pega cualquiera de los dos formatos — el otro aparece mientras escribes, en ambos sentidos.

Cómo se usa

  1. Pega CSV (o TSV o texto separado por punto y coma) o un array JSON en la caja — el resultado se dibuja mientras escribes, no hay botón que pulsar. La dirección se detecta por el primer carácter y se muestra sobre el resultado, para que puedas comprobarla.
  2. Si la dirección se adivinó mal, elige CSV → JSON o JSON → CSV. Si todo cae en una sola columna, cambia el delimitador de «Auto» a tu carácter. Desactiva «La primera fila es cabecera» cuando el archivo empiece con datos — entonces obtienes un array de arrays en lugar de objetos.
  3. Copia o descarga el resultado. Ambos usan el texto exacto que ves en pantalla; el archivo se llama data.json o data.csv. Cargar ejemplo rellena un ejemplo para la dirección activa.

Ejemplo

Entrada (CSV)

pedido_id,cliente,nota,cp,importe,enviado
1001,"García, Ana",solicitó un reembolso,00501,89.90,true
1002,Luis Ortega,,10001,42.00,false

Salida (JSON)

[
  {
    "pedido_id": 1001,
    "cliente": "García, Ana",
    "nota": "solicitó un reembolso",
    "cp": "00501",
    "importe": 89.9,
    "enviado": true
  },
  {
    "pedido_id": 1002,
    "cliente": "Luis Ortega",
    "nota": "",
    "cp": 10001,
    "importe": 42,
    "enviado": false
  }
]

Cuatro cosas que comprobar en esa salida: la coma dentro de «García, Ana» se quedó dentro del valor en lugar de partir la fila; el código postal 00501 conservó su cero inicial porque de lo contrario sería 501; 10001 sí se convirtió en número, así que la columna de código postal acaba con tipos mixtos — desactiva «Detectar números y booleanos» para que todos los valores sigan siendo cadenas; y 89.90 salió como 89.9, porque un número JSON no puede llevar un cero final.

Reglas, límites y problemas conocidos

  • Sin subida de archivos, arrastrar y soltar ni descarga desde URL: pega el texto. Una zona para soltar archivos se comería la altura que necesita el resultado, y leer archivos correctamente implica manejar codificaciones no UTF-8 — el visor de CSV ya lo hace (GB18030, Big5, Windows-1256), así que abre allí el archivo y copia el texto.
  • La entrada está limitada a 1.000.000 de caracteres; por encima de 200.000 el resultado espera a que pares de escribir y lo indica. Por encima del límite máximo obtienes un error explícito — la entrada nunca se trunca en silencio.
  • La detección de tipos es por celda y conservadora: solo true / false / null (en minúsculas) y números JSON estrictos se convierten. Los enteros con cero inicial (00501) y los números de 16 dígitos o más (IDs largos) siempre siguen siendo cadenas, y las celdas vacías siguen siendo "" en lugar de convertirse en null.
  • Un número JSON no puede conservar ceros finales, así que 89.90 se convierte en 89.9 y 42.00 en 42. Desactiva «Detectar números y booleanos» para conservar cada valor exactamente como se escribió.
  • El número de columnas es el de la fila más ancha, así que nunca se descarta ningún campo: las filas cortas se rellenan con cadenas vacías y los campos extra reciben un nombre generado automáticamente. Las filas que no coinciden con la primera se listan por número.
  • Los nombres de columna duplicados se renombran con _2, _3… en lugar de sobrescribirse — sobrescribir perdería una columna entera en silencio. Las celdas de cabecera ausentes o vacías pasan a column_N. Esos nombres son legibles por máquina y son iguales en todos los idiomas de la interfaz.
  • JSON → CSV acepta un array de objetos (el caso principal), un array de arrays (columnas posicionales), un objeto suelto y un array de valores simples (una columna «value»). Cualquier otra cosa — un valor de nivel superior o un array que mezcle objetos con otros valores — se rechaza con la línea y la columna, nunca se adivina.
  • Los objetos anidados se aplanan en claves con puntos (address.city) por defecto; los arrays nunca se aplanan, se escriben como JSON compacto dentro de la celda. Desactiva el aplanado para conservar también los objetos anidados como JSON. Un null se convierte en celda vacía.
  • El JSON se analiza de forma estricta: sin comentarios, sin comas finales, sin comillas simples, sin caracteres de control sin escapar, con anidamiento de hasta 64 niveles. Un objeto por línea (JSON Lines) no se acepta — envuelve primero los objetos en un array.
  • El CSV es el lado tolerante: una comilla sin cerrar se pliega hasta el final del texto y se nombra su fila, las líneas en blanco se omiten y se cuentan, y una fila con el número de campos incorrecto se lista. Solo el lado JSON produce errores graves.
  • El CSV de salida se escribe con saltos de línea CRLF y sin marca de orden de bytes, y es idéntico a lo que copias. Si Excel muestra caracteres extraños al hacer doble clic en un CSV no latino, impórtalo mediante Datos → Desde texto/CSV y elige UTF-8.
  • Fuera de alcance: .xlsx, archivos comprimidos, varios archivos, JSON Lines, exportación a YAML/XML/SQL/Excel, ordenación, filtrado, selección de columnas y deduplicación — el visor de CSV y el conversor de configuración cubren eso. No se sube, guarda ni pone nada en la URL.

Lo que suele necesitarse después, una vez los datos están en el otro formato.