Formatos de datos
JSON Array vs CSV vs Line List: ¿Qué formato deberías usar?
Compara JSON arrays, CSV y line lists. Aprende sobre escaping, datos anidados, uso en hojas de cálculo y errores de conversión para tus proyectos de datos.
Cuando trabajas con listas de datos para hojas de cálculo, APIs o herramientas de desarrollo, a menudo eliges entre algunos formatos de texto simples. JSON arrays, archivos CSV y line lists (un elemento por línea) se encuentran entre los más comunes. Cada formato tiene fortalezas y limitaciones que afectan cómo manejas el escaping, las estructuras anidadas y la edición humana.
Los JSON arrays son amigables para las máquinas y admiten tipos de datos complejos; CSV es el formato universal para importar y exportar en hojas de cálculo; los line lists son los más simples para edición manual y control de versiones. La elección correcta depende de si necesitas preservar la estructura, compartir con usuarios no técnicos o minimizar el tamaño del archivo.
Esta guía compara los tres formatos en términos de escaping, datos anidados, integración con hojas de cálculo y errores de conversión. Aprenderás cómo usar cada formato de manera efectiva y evitar errores comunes al mover datos entre ellos.
Comprendiendo los Tres Formatos
Un JSON array es una colección ordenada de valores encerrados entre corchetes. Puede contener cadenas, números, booleanos, objetos y arrays anidados. CSV (valores separados por comas) representa datos tabulares como filas de campos separados por comas, a menudo con una fila de encabezado opcional. Un line list es la forma más simple: un valor por línea, sin delimitadores, sin estructura de columnas.
- Los JSON arrays manejan datos heterogéneos y objetos anidados.
- CSV es el estándar para exportaciones de hojas de cálculo y bases de datos.
- Los line lists son mejores para colecciones simples y ordenadas como direcciones de correo electrónico o nombres de archivo.
["apple", "banana", "cherry"]fruit,quantity
apple,3
banana,5
cherry,2apple
banana
cherryTrabajando con JSON Arrays
Los JSON arrays se utilizan ampliamente en APIs web y archivos de configuración porque admiten estructuras anidadas. Un array puede contener objetos con múltiples propiedades, lo que facilita la representación de entidades del mundo real. El formato es estricto: comas finales, claves sin comillas o corchetes desemparejados causarán errores de análisis.
Para listas simples, JSON es más verboso que un line list, pero su legibilidad por máquinas y su soporte para diversos tipos de datos a menudo superan la sobrecarga. El escaping se maneja con barras invertidas dentro de las cadenas: las comillas dobles se convierten en \", las barras invertidas en \\, y los saltos de línea en \n.
- Ventajas: soporta anidamiento complejo, independiente del lenguaje, autodescriptivo.
- Desventajas: más verboso, requiere validación, menos editable por humanos para conjuntos de datos grandes.
[
{"name": "Alice", "email": "[email protected]"},
{"name": "Bob", "email": "[email protected]"}
]["line1\nline2", "path\\to\\file", "She said \"hello\""]Trabajando con CSV
Los archivos CSV son el estándar de facto para intercambiar datos entre hojas de cálculo y bases de datos. Cada línea representa un registro y los campos están separados por un delimitador, típicamente una coma, aunque se usan puntos y comas en regiones donde la coma es un separador decimal. Siguiendo RFC 4180, los campos que contienen un delimitador, una comilla doble o un salto de línea deben encerrarse entre comillas dobles.
Los datos en CSV siempre se representan como cadenas; los números, fechas y booleanos pueden ser interpretados de manera diferente por distintos programas. Los encabezados son comunes pero no obligatorios. El mayor desafío con CSV es manejar delimitadores específicos de la configuración regional y la codificación (UTF‑8, UTF‑8 BOM o ISO‑8859‑1).
- Ventajas: nativo en hojas de cálculo, fácil de ver en forma de tabla, compacto.
- Desventajas: tipos de datos limitados (todas cadenas), sin estructuras anidadas, el escape de comillas puede ser confuso.
"Name","Comment"
"Smith, John","He said ""hello"""Trabajando con Line Lists
Un line list es el formato de datos basado en texto más simple: un valor por línea, sin delimitadores, sin reglas de comillas. Es ideal para colecciones de elementos donde cada elemento es una sola cadena sin saltos de línea, como direcciones de correo electrónico, nombres de dominio, nombres de archivo o códigos de producto. El formato es extremadamente amigable para los humanos y funciona bien con herramientas de línea de comandos como grep, sort y uniq.
Debido a que no hay escaping, los line lists no pueden contener valores multilínea. Si un elemento pudiera incluir un salto de línea, debes usar un formato diferente o codificar el salto de línea como una barra invertida n literal (u otro marcador) por convención. Muchos editores y sistemas de control de versiones manejan los line lists limpiamente porque cada cambio es visible línea por línea.
- Ventajas: legible por humanos, fácil de ordenar y deduplicar, sin escape para valores típicos.
- Desventajas: solo adecuado para datos de un solo campo, sin soporte para elementos multilínea sin convenciones.
[email protected]
[email protected]
[email protected]Escaping y Comillas en los Tres Formatos
Cada formato maneja los caracteres especiales de manera diferente. En JSON, cualquier cadena puede contener secuencias escapadas con barra invertida: \" para comilla doble, \\ para barra invertida, \n para salto de línea, \t para tabulación. El analizador siempre interpreta estas secuencias, lo que hace que JSON sea inequívoco pero más difícil de escribir a mano.
CSV depende de comillas dobles exteriores para proteger campos que contienen caracteres especiales. Si un campo contiene una comilla doble, se duplica ("" se convierte en una comilla literal). Los line lists no tienen mecanismo de escape; si los datos contienen un salto de línea, la estructura se rompe. Comprender estas diferencias es crítico al convertir entre formatos.
- JSON utiliza escape con barra invertida dentro de las cadenas.
- CSV utiliza comillas dobles para campos que contienen comas, saltos de línea o comillas.
- Los line lists asumen que no hay saltos de línea en los datos; los saltos de línea incrustados no son representables.
JSON: "He said \"hello\"\nand left."
CSV: "He said ""hello""
and left."Integración con Hojas de Cálculo e Importación/Exportación
CSV es el formato más directo para los usuarios de hojas de cálculo. La mayoría de las aplicaciones de hojas de cálculo (Microsoft Excel, Google Sheets, LibreOffice Calc) pueden abrir un archivo CSV directamente, aunque pueden malinterpretar el delimitador o la codificación. Para obtener resultados coherentes, guarda los archivos CSV en UTF‑8 con una marca de orden de bytes (BOM) y usa comas (o punto y coma según la región).
Los JSON arrays se pueden importar a hojas de cálculo utilizando herramientas integradas como Power Query (Excel) o escribiendo un pequeño script. Los line lists a menudo se pegan en una sola columna; es posible que necesites usar la función ‘Texto en columnas’ si la lista contiene delimitadores. Para cada formato, ten cuidado con la conversión automática de datos: ceros iniciales en números, cadenas de fecha o números grandes que pueden perder precisión.
- Abre Excel y elige Archivo > Abrir.
- Selecciona tu archivo CSV. Si los datos aparecen incorrectamente, usa el Asistente para importar texto para especificar el delimitador y la codificación.
- Para JSON, usa Datos > Obtener datos > Desde archivo > Desde JSON.
- Para un line list, pega los datos en una columna, luego selecciona la columna y usa Datos > Texto en columnas si necesitas dividir más.
- CSV: verifica el delimitador y la codificación de caracteres; UTF-8 con BOM puede mejorar la compatibilidad con algunas versiones de Excel.
- JSON: valida la estructura antes de importar para detectar errores de sintaxis temprano.
- Line list: pega en una columna con formato de texto cuando los ceros iniciales deban conservarse.
Errores Comunes de Conversión y Cómo Evitarlos
Convertir entre estos formatos a menudo causa pérdida de datos si no tienes cuidado. Aplanar un JSON array anidado a CSV te obliga a elegir qué propiedades conservar, descartando otras. Al convertir un line list a CSV, cada línea se convierte en un solo campo, pero si la línea contiene una coma o comilla doble, debe estar correctamente entrecomillada para seguir siendo una sola columna.
La validación es clave. Los archivos JSON deben validarse con un linter para detectar comas finales o claves sin comillas. Los archivos CSV deben revisarse para verificar longitudes de fila consistentes y comillas correctas. Los line lists deben tener saltos de línea al final y sin líneas en blanco a menos que sea intencional. Usar una herramienta de conversión dedicada puede ayudar a evitar estos errores.
- 1. Identifica la estructura del formato de origen (plana o anidada).
- 2. Si conviertes desde JSON, aplana cualquier objeto o array anidado.
- 3. Para CSV, asegúrate de que los encabezados estén presentes si es necesario y que los campos estén correctamente entrecomillados.
- 4. Para line lists, confirma que los elementos no contengan saltos de línea; si los contienen, codifícalos o cambia de formato.
- 5. Valida la salida con una prueba de análisis simple.
- Aplana objetos anidados en JSON antes de convertir a CSV.
- Siempre entrecomilla los campos en CSV si pueden contener comas o saltos de línea.
- Valida JSON con un linter antes de la conversión.
- Verifica líneas vacías o espacios al final en line lists.
Source JSON: [{"name": "Alice", "tags": ["dev", "admin"]}]
Flattened CSV: name,tags
Alice,"[""dev"",""admin""]""Name"
"Smith, John"Elegir un Formato: Guía de Decisión
El mejor formato para tus datos depende de cómo se crearán, consumirán y mantendrán. Usa JSON arrays cuando tus datos tengan estructuras anidadas, o cuando intercambies datos entre aplicaciones que ya usan JSON. Elige CSV cuando tu público objetivo use hojas de cálculo, o cuando necesites un formato tabular universalmente aceptado. Elige un line list para colecciones simples y planas que los humanos editarán con un editor de texto básico.
- Para datos de API → JSON.
- Para importación en hojas de cálculo → CSV.
- Para listas simples (correos electrónicos, códigos) → line list.
- Para máxima interoperabilidad → CSV (todas las aplicaciones de hojas de cálculo lo admiten).
- Para diferencias amigables con el control de versiones → line list.
Conclusión
Elige JSON para datos de aplicación estructurados o anidados, CSV para filas y columnas reales, y un line list para una colección simple y plana cuyos valores no contengan saltos de línea. El escaping y el comportamiento de importación importan tanto como el delimitador visible.
Los convertidores de listas en el navegador son útiles para JSON arrays primitivos y cambios de delimitador literales. Usa un analizador CSV adecuado para CSV entrecomillado o multilínea y valida el formato de destino antes de descartar el origen.