CSV o JSON: cuándo usar cada uno y qué vigilar al convertir
Enviar una exportación de hoja de cálculo a una API, o abrir una respuesta de API en Excel, implica convertir entre CSV y JSON. Conocer las diferencias entre formatos evita que los datos se dañen por el camino.
Tabla frente a árbol
CSV (Comma-Separated Values) es una tabla. La primera línea contiene los nombres de columna y cada línea siguiente es un registro, con valores separados por comas. Es la forma más simple y ligera de guardar datos planos en los que todas las filas tienen las mismas columnas.
JSON es un árbol. Los objetos pueden contener arrays que contienen más objetos, de modo que datos jerárquicos como «un pedido con varios artículos» se expresan de forma natural. El coste es el tamaño, porque los nombres de las claves se repiten en cada registro.
name,city,score
Kim,Seoul,92
Lee,Busan,85
[
{"name": "Kim", "city": "Seoul", "score": 92},
{"name": "Lee", "city": "Busan", "score": 85}
]
Cuál usar
Que CSV no tenga tipos importa. Guarda el código postal 01234 en un CSV y Excel puede leerlo como número y eliminar el cero inicial; los números largos de tarjeta o de pedido pueden convertirse en notación científica como 1,23E+15.
- Datos que la gente abrirá o editará en Excel o Google Sheets: CSV.
- Cientos de miles de filas de registros o estadísticas sencillas: CSV (pequeño y fácil de procesar línea a línea).
- Peticiones y respuestas de API web: JSON.
- Datos jerárquicos con listas dentro de los registros: JSON.
- Cuando hay que distinguir números, booleanos y null: JSON (en CSV todo es texto).
Comas y comillas: reglas de escape de CSV
¿Y si un valor contiene una coma? La RFC 4180 indica envolverlo en comillas dobles: "Madrid, España". Una comilla doble dentro de un valor se escapa duplicándola, así que He said "hi" se convierte en "He said ""hi""". Los saltos de línea dentro de los valores se permiten si van entre comillas.
El código que simplemente llama a split(',') ignora estas reglas, y las columnas se desplazan en cuanto aparece una columna de dirección o de notas. Procesa siempre el CSV con un analizador o convertidor que siga el estándar.
Por qué Excel desordena las tildes y la ñ
Al hacer doble clic en un CSV en UTF-8 en Excel para Windows, a menudo las tildes, la ñ o los caracteres asiáticos aparecen ilegibles (á se convierte en á). Sin la marca de orden de bytes (BOM) de UTF-8, Excel adivina y recurre a la codificación heredada del sistema.
Guarda el archivo en UTF-8 con BOM, o usa Datos → Desde el texto/CSV en Excel y elige UTF-8 de forma explícita. Al revés, cuando un programa lee un archivo con BOM, comprueba que no se haya añadido un carácter invisible delante del primer nombre de columna.
Aplanar JSON anidado a CSV
Convertir un árbol en una tabla requiere una convención. Una habitual une la ruta con puntos, de modo que {"user": {"name": "Kim"}} se convierte en la columna user.name.
Los arrays son más complicados. Si un pedido tiene tres artículos, puedes crear tres filas o guardar los artículos como una cadena JSON en una sola columna. Las filas adicionales sirven para el análisis; una columna con cadena JSON sirve para conservar el original.
Lista de comprobación antes de convertir
Convierte con el conversor CSV ↔ JSON de AIBIZAP y revisa la estructura en el formateador JSON para detectar errores pronto.
- Confirma que la primera línea es una cabecera y que el delimitador es realmente una coma (el punto y coma y el tabulador son habituales).
- Mantén como cadenas los códigos cuyos ceros iniciales tienen significado.
- Elimina primero los espacios alrededor de las celdas y las líneas en blanco; el eliminador de espacios ayuda.
- Comprueba que el número de filas tras la conversión coincide con el original. Si no coincide, suele haber un problema de comillas o saltos de línea.