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'
endRecorrido 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.parseconvierte una cadena en objetos de Rubyto_json/JSON.generategeneran JSON compactopretty_generategenera una salida legiblesymbolize_names: truegenera claves Symbol- Capture
JSON::ParserErrorcuando 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
- Lectura y escritura de JSON
- Trabajo con CSV
- Configuración con YAML
- Elección de un formato