0Pricing
Ruby Academy · Lección

Elección de un formato

Compromisos

Elección de un formato es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

Tres formatos, tres funciones

Ahora conoce JSON, CSV y YAML. Cada uno destaca en situaciones diferentes. Elegir el formato adecuado facilita producir, almacenar y consumir los datos.

  • JSON para API y la web
  • CSV para datos tabulares o de hojas de cálculo
  • YAML para la configuración
puts ['JSON', 'CSV', 'YAML'].join(', ')

Ventajas de JSON

JSON es compacto, tiene compatibilidad universal y se corresponde con Hashes y Arrays anidados. Es el estándar de facto para las API web y el intercambio de datos entre servicios.

require 'json'
puts({ id: 1, items: [1, 2] }.to_json)

Desventajas de JSON

JSON no admite comentarios y resulta poco práctico para editarlo manualmente. Las comas finales y las comillas simples no son válidas, lo que suele causar problemas en los archivos de configuración.

require 'json'
begin
  JSON.parse('{"a":1,}')
rescue JSON::ParserError
  puts 'trailing comma not allowed'
end

Ventajas de CSV

CSV es perfecto para datos planos y tabulares: filas y columnas. Las hojas de cálculo, las exportaciones y las importaciones masivas utilizan CSV, que además es extremadamente compacto para tablas grandes.

require 'csv'
puts(CSV.generate { |c| c << ['a', 'b']; c << [1, 2] })

Desventajas de CSV

CSV no puede representar datos anidados o jerárquicos. No tiene un sistema de tipos estándar, por lo que todo es una cadena hasta que se convierte, y los dialectos (separadores y comillas) varían.

require 'csv'
row = CSV.parse_line('5,true')
puts(row[0].class)
puts(row[1].class)

Ventajas de YAML

YAML es el formato más legible para las personas, admite comentarios y gestiona la anidación con claridad. Por eso es ideal para los archivos de configuración que los desarrolladores editan manualmente.

require 'yaml'
text = "# app config\nport: 8081"
puts(YAML.load(text)['port'])

Desventajas de YAML

Las reglas de sangría de YAML son propensas a errores (un espacio de más puede romperlo) y cargarlo de forma insegura puede suponer un riesgo de seguridad. Además, se analiza más lentamente que JSON.

require 'yaml'
cfg = YAML.safe_load("port: 8081")
puts(cfg['port'])

Comparación de la anidación

JSON y YAML representan de forma natural la misma estructura anidada; CSV no puede hacerlo.

require 'json'
require 'yaml'
data = { 'user' => { 'name' => 'Ada', 'roles' => ['admin'] } }
puts(data.to_json)
puts(data.to_yaml)

Legibilidad frente a compactibilidad

Es una cuestión de equilibrio: YAML es el más legible, JSON ofrece un punto intermedio y CSV es el más compacto para tablas. Elija según si los principales consumidores son personas o máquinas.

require 'json'
require 'yaml'
h = { 'a' => 1, 'b' => 2 }
puts("JSON len: #{h.to_json.length}")
puts("YAML len: #{h.to_yaml.length}")

Guía para decidir

Reglas rápidas:

  • ¿Se comunica con una API web? JSON
  • ¿Exporta filas para una hoja de cálculo? CSV
  • ¿Son ajustes de una aplicación que edita una persona? YAML

En caso de duda, JSON es la opción predeterminada más segura para el intercambio.

choice = { api: 'JSON', table: 'CSV', config: 'YAML' }
puts(choice[:config])

Convertir entre formatos

Como los tres se analizan en las mismas estructuras Hash/Array de Ruby, convertirlos es sencillo: analice uno y vuelque el resultado en otro.

require 'json'
require 'yaml'
data = JSON.parse('{"port":8081,"name":"app"}')
puts(data.to_yaml)

Comprobación rápida

¿Qué formato es la mejor opción predeterminada para un archivo de configuración que los desarrolladores editan manualmente y en el que quieren incluir comentarios?

Repaso: elegir un formato

Ahora puede elegir la herramienta adecuada:

  • JSON: API, intercambio y equilibrio
  • CSV: tablas planas, hojas de cálculo y compactibilidad
  • YAML: configuración, legibilidad, comentarios y anidación
  • Los tres se analizan en las mismas estructuras de Ruby, por lo que convertirlos es fácil
require 'yaml'
require 'json'
puts(YAML.load('a: 1').to_json)

Preguntas frecuentes

¿La lección «Elección de un formato» es gratis?

Sí — el texto completo de «Elección de un formato» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Elección de un formato»?

Compromisos Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Elección de un formato»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Lectura y escritura de JSON
  2. Trabajo con CSV
  3. Configuración con YAML
  4. Elección de un formato
← Volver a Ruby Academy