Generador cron de AWS
Generador cron
Contador de texto
JSON a CSV
CSV a JSON
Conversor de timestamp Unix
Generador de UUID v4 y v7
JSON a TypeScript
Markdown a PDF
Base64
Imágenes
JSON
Código QR
Contraseñas
Unidades
Hash
Colores
Herramientas PDF
Editor de PDF
Codificador de URL
Conversor de Formato
Lorem Ipsum
Probador de expresiones regulares
Decodificador JWT
Diferencia de texto
Optimizador SVG
Visor EXIF
Extractor de color
Generador de favicones
Convertidor universal
Conversor de Horas
Divisor de PDF
Imágenes a PDF
PDF a Imagen
Eliminar Fondo
Volver al BlogUTILX / Notas y guías

CSV a JSON: conserva identificadores, comillas y campos vacíos

Filas CSV convertidas en objetos JSON

Pasar CSV a JSON parece sencillo hasta que un identificador pierde sus ceros iniciales, un salto entrecomillado se convierte en otra fila o un entero largo se redondea. Los campos CSV son texto salvo que una aplicación les asigne otro significado. Un importador cuidadoso analiza primero la estructura y solo infiere tipos con reglas explícitas y conservadoras.

Esta guía usa la herramienta CSV a JSON con dos filas fijas. Prueba comas dentro de campos, texto multilínea, una celda vacía, un identificador con ceros, un entero fuera del rango seguro, booleanos y un decimal.

Separar análisis e inferencia

Analizar CSV responde dónde termina un registro o campo y cómo las comillas protegen delimitadores y saltos. Inferir tipos decide si el texto debe convertirse en booleano o número. Mezclar ambas operaciones de forma invisible dificulta explicar un fallo.

La herramienta conserva cadenas de forma predeterminada: 0012, true y una celda vacía se vuelven "0012", "true" y "". La inferencia opcional convierte booleanos exactos y números seguros, pero mantiene cadenas con ceros iniciales, fechas y enteros no seguros. Nunca adivina fechas. Es un contrato conservador, no un defecto que deba eludirse.

Un CSV que revela errores habituales

Guarda exactamente este contenido en UTF-8:

id,name,note,amount,enabled
0012,"Doe, Ana","Line one
Line two",9007199254740993,true
0013,Bela,,12.5,false

Con coma y sin inferencia, todas las propiedades JSON son cadenas. La primera nota contiene un salto real y sigue siendo un campo porque las comillas continúan abiertas. La segunda nota es "". Ambos importes y booleanos son texto.

Con inferencia, id sigue siendo cadena por los ceros iniciales. 9007199254740993 también, pues un number de JavaScript podría perder precisión. 12.5 pasa a número y true/false a booleanos. La nota vacía sigue siendo cadena vacía y ninguna fecha se convierte.

Importar con una secuencia verificable

Abre la herramienta, elige coma y pega el ejemplo. Un BOM UTF-8 inicial se acepta sin incorporarlo a la primera cabecera. Convierte primero sin inferencia. Exige dos objetos con cinco propiedades, descarga el JSON y analízalo con un segundo parser si entrará en un flujo automático.

Activa después la inferencia. Compara solo los cambios previstos: enabled se vuelve booleano y el segundo importe, número. Los identificadores y el importe largo deben seguir entre comillas. Esta comparación muestra si el destino quiere valores interpretados o texto original.

La vista muestra como máximo 100 filas, pero la descarga incluye todas hasta 10.000. Comprueba la longitud de la matriz descargada. Si más tarde necesitas CSV, sigue la guía JSON a CSV y deja por escrito qué transformaciones no son reversibles.

Cómo se interpretan comillas, filas y cabeceras

RFC 4180 documenta la convención: registros formados por campos, campos entrecomillados, comillas internas duplicadas y saltos de línea permitidos dentro de comillas. Los archivos reales varían; el delimitador elegido debe coincidir. Interpretar un TSV como CSV puede producir una sola cabecera gigante.

El primer registro aporta los nombres. Deben ser únicos y no vacíos. Dos columnas iguales no pueden mapearse sin ambigüedad a un objeto, y una cabecera vacía crea una propiedad sin contrato; ambas se rechazan en la fila 1. Las filas siguientes deben tener el mismo número de celdas. Una diferencia indica la fila afectada para evitar desplazar datos silenciosamente.

RFC 8259 permite números JSON, pero la interoperabilidad habitual usa IEEE 754 binario64. Number.isSafeInteger identifica enteros representables exactamente. Mantener 9007199254740993 como texto protege sus dígitos para que el esquema posterior elija BigInt, decimal o tipo de base de datos.

Corregir entradas defectuosas sin ocultarlas

Las cabeceras duplicadas o vacías deben corregirse en el esquema. Renombra con términos estables; no añadas números aleatorios si otros consumidores dependen de esas claves. Un error de columnas suele proceder de un delimitador sin comillas, una comilla abierta o un salto que debía quedar dentro de un campo. Revisa también la fila anterior, porque una comilla no cerrada desplaza el diagnóstico.

La fila indicada cuenta registros CSV lógicos desde uno, incluyendo la cabecera. No es un número de línea física: un campo entrecomillado puede ocupar varias líneas.

Ante CSV inválido, corrige las comillas en vez de borrar puntuación. Una comilla literal dentro de un campo citado se duplica; un campo con coma o salto debe citarse. Si el archivo usa punto y coma o tabulador, selecciónalo antes de cambiar contenido.

Más de 2 MiB, 10.000 filas o una salida JSON estimada superior a 16 MiB se rechazan. No se devuelve una matriz parcial que parezca completa. Divide sin cortar registros entrecomillados, repite cabecera y reconcilia recuentos.

Conservar identificadores y significado

Decide tipos por contrato, no por apariencia. Códigos postales, cuentas, facturas y teléfonos pueden contener solo dígitos y seguir siendo identificadores. Los ceros son una señal, no la definición completa. Incluso 1234 puede necesitar una cadena. Deja la inferencia desactivada cuando importe el texto exacto y valida después con el esquema receptor.

Una celda vacía tampoco equivale necesariamente a null. La herramienta emite "" porque CSV solo aporta un campo vacío. Si el origen define un centinela NULL, trátalo en un paso documentado. 2026-09-17 permanece texto: elegir zona o tipo de fecha requiere información ausente.

La conversión es local, pero el JSON descargado es una nueva copia. Revisa almacenamiento, acceso y borrado. Usa ejemplos sintéticos. Para fallos del JSON resultante, la guía de errores JSON ayuda a aislar la estructura.

Límites de inferir automáticamente

El importador reconoce delimitador y comillas; no descubre esquemas, unidades, decimales regionales, fechas, convenciones de nulos ni relaciones entre archivos. La inferencia es estrecha a propósito. No convierte fechas, enteros inseguros ni cadenas con ceros.

Una matriz JSON válida aún puede ser semánticamente incorrecta. La herramienta no valida propiedades obligatorias, rangos, reglas cruzadas o unicidad. La vista termina en 100 filas y la descarga en 10.000; la entrada es 2 MiB y la salida estimada, 16 MiB. Cuando un error afecte a producción, usa validador de esquema o tabla de preparación.

Lista final de importación

Confirma UTF-8, delimitador, cabeceras y recuento exacto. Verifica nombres únicos y el mismo número de campos. Convierte sin inferencia y examina ceros, vacíos, comas, comillas y texto multilínea. Activa inferencia solo si el destino desea booleanos y números seguros.

Para el ejemplo, exige dos objetos; preserva 0012, 0013 y 9007199254740993; conserva el salto y ""; convierte solo 12.5, true y false al inferir. Descarga y analiza todo, compara la longitud y valida con el esquema receptor.

Añade una prueba negativa antes de cerrar: duplica id en la cabecera y confirma el rechazo; añade una tercera celda a una fila de dos columnas y comprueba que el mensaje señale esa fila. Después restaura el fixture y conserva juntos archivo, opciones y resultado aprobado. Esta pequeña prueba demuestra que el proceso falla de forma visible ante desplazamientos, en lugar de generar objetos plausibles con datos bajo claves equivocadas. Si el receptor transforma de nuevo los tipos, documenta también esa segunda inferencia para no atribuírsela al conversor.

Revisa asimismo los caracteres acentuados y un campo con comillas literales después de descargar, no solo en la vista del navegador. Un visor que abre con otra codificación puede mostrar texto alterado aunque la conversión haya producido UTF-8 correcto. Conserva el CSV original junto con el JSON validado hasta que el receptor confirme la carga; así podrás distinguir un problema del origen, de la conversión o de la importación final sin reconstruir el caso de memoria.

Fuentes: RFC 4180: formato CSV, RFC 8259: JSON y ECMAScript Number.isSafeInteger.