JSON y CSV: mueve los datos sin perder su significado
Convertir bien no consiste solo en producir un archivo que se abra. Un identificador debe seguir siendo identificador; un precio, precio; y un dato ausente, ausente. Los errores de tipo y estructura pueden pasar sin mensaje de error.
¿Filas planas o datos anidados?
CSV encaja con tablas de filas y campos. JSON representa valores con tipos, listas y objetos anidados. Si un registro tiene varias direcciones o productos, decide cómo convertirlos en columnas antes de exportar a CSV. No hay una única tabla correcta para cualquier estructura.
Referencias: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Dar formato no es validar
Dar formato a JSON facilita leer la sangría, pero no demuestra que una fecha o un precio sean correctos. Un esquema comprueba los tipos declarados y los campos obligatorios; el significado sigue dependiendo de las reglas de la aplicación.
En JSON, una cadena entre comillas es distinta de un número. En CSV, las comas o saltos de línea dentro de un campo requieren comillas adecuadas; las comillas dentro de un campo entrecomillado se duplican.
Referencias: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Qué revisar después de convertir
Conserva el original. Compara el número de registros y los nombres de columnas, y examina un registro normal y otro con valores vacíos, puntuación o texto multilingüe. Abre el resultado en el programa que lo recibirá: el conversor no garantiza cómo lo importará.
- Conserva identificadores como 0017 como texto si sus ceros forman parte del valor.
- No equipares silenciosamente un vacío, null y 0.
- Usa muestras ficticias, no credenciales ni datos personales reales.
- Trata con cuidado los CSV no fiables en hojas de cálculo: algunas celdas pueden interpretarse como fórmulas.
Referencias: OWASP — CSV Injection
Ejemplo: una coma dentro de un nombre
JSON de ejemplo: {"sku":"0017","name":"Cuaderno, azul","price":12.5}. En CSV separado por comas, entrecomilla el nombre: 0017,"Cuaderno, azul",12.5.
Al importar, comprueba que sku siga siendo 0017 y no 17, y que el nombre no se divida en 2 columnas. La mera existencia de un archivo de salida no demuestra ninguna de esas propiedades.