0Pricing
Ruby Academy · Lección

Lectura y escritura de JSON

JSON.parse y generate

Lectura y escritura de JSON es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 1 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.

¿Qué es JSON?

JSON (JavaScript Object Notation) es un formato de texto ligero para el intercambio de datos. Se corresponde fácilmente con los hashes y arrays de Ruby.

Importe la biblioteca json para utilizarlo.

require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))

Analizar texto JSON

JSON.parse convierte una cadena JSON en objetos de Ruby: los objetos se convierten en Hashes y los arrays, en Arrays.

require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])

Generar texto JSON

JSON.generate (o to_json en los objetos) convierte datos de Ruby en una cadena JSON compacta.

require 'json'
arr = [1, 2, { ok: true }]
puts(arr.to_json)

Impresión con formato

JSON.pretty_generate produce un JSON indentado y fácil de leer, ideal para archivos de configuración y depuración.

require 'json'
data = { name: 'Ruby', tags: ['fun', 'oop'] }
puts(JSON.pretty_generate(data))

Claves Symbol al analizar

De forma predeterminada, las claves analizadas son Strings. Pase symbolize_names: true para obtener claves Symbol.

require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])

Estructuras anidadas

JSON admite anidamiento. El análisis reconstruye el árbol completo de Hashes y Arrays.

require 'json'
text = '{"user":{"name":"Ada","roles":["admin","dev"]}}'
h = JSON.parse(text)
puts(h['user']['name'])
puts(h['user']['roles'][1])

Correspondencia de tipos

Los tipos JSON se corresponden con Ruby:

  • object → Hash, array → Array
  • string → String, number → Integer/Float
  • true/false → true/false, null → nil
require 'json'
h = JSON.parse('{"a":1,"b":1.5,"c":null,"d":true}')
puts(h['a'].class)
puts(h['c'].inspect)

Escribir JSON en un archivo

Combine pretty_generate con File.write para guardar datos en el disco.

require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'data.json')
File.write(path, JSON.pretty_generate({ ok: true }))
puts(File.read(path))

Leer JSON de un archivo

Lea el contenido del archivo y analícelo en un solo paso.

require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'cfg.json')
File.write(path, '{"port":8081}')
cfg = JSON.parse(File.read(path))
puts(cfg['port'])

Gestionar errores de análisis

Un JSON mal formado genera JSON::ParserError. Captúrelo con Rescue para gestionar la entrada no válida correctamente.

require 'json'
begin
  JSON.parse('{not valid}')
rescue JSON::ParserError => e
  puts 'Invalid JSON caught'
end

Recorrido de ida y vuelta

Generar y luego analizar debería devolver datos equivalentes, una comprobación de coherencia útil.

require 'json'
original = { id: 7, tags: ['a', 'b'] }
back = JSON.parse(original.to_json, symbolize_names: true)
puts(back == original)

Comprobación rápida

¿Qué opción hace que JSON.parse devuelva claves Symbol en lugar de claves String?

Resumen: leer y escribir JSON

Puede introducir datos en JSON y extraerlos de él:

  • JSON.parse convierte una cadena en objetos de Ruby
  • to_json / JSON.generate generan JSON compacto
  • pretty_generate genera una salida legible
  • symbolize_names: true genera claves Symbol
  • Capture JSON::ParserError cuando la entrada no sea válida
require 'json'
puts(JSON.parse('[1,2,3]').sum)

Preguntas frecuentes

¿La lección «Lectura y escritura de JSON» es gratis?

Sí — el texto completo de «Lectura y escritura de JSON» 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 «Lectura y escritura de JSON»?

JSON.parse y generate 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 1 de 4.

¿Cuánto tiempo toma la lección «Lectura y escritura de JSON»?

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