Ruby

Codificar y decodificar JSON con Ruby

JSON es un formato de intercambio de datos que ha ganado popularidad en los últimos años; es legible para los seres humanos y también para las máquinas (no como XML, cof cof).

Muchos lenguajes de programación (incluso los fuertemente tipados como Go) lo han implementado y Ruby no es la excepción.

Codificar y decodificar JSON en Ruby usando to_json y JSON.parse

Por eso es que hoy veremos cómo codificar y decodificar el formato JSON en Ruby; es decir, vamos a leer una cadena JSON y convertirla en variables del lenguaje, y también vamos a convertir algunas variables a JSON.

Cómo decodificar y decodificar JSON en Ruby

Para codificar, se utiliza un método llamado to_json que tienen la mayoría de tipos de datos en Ruby. Y para decodificar se usa JSON.parse; el cual no se necesita importar.

Te recomiendo leer cómo trabajar con JSON con PHP y cómo trabajar con JSON en JavaScript.

Codificar JSON con Ruby

Como lo dije, todos los tipos de datos tienen este método. Se usa así:

convertido_a_json = variable.to_json

Lo he probado con enteros, flotantes, booleanos y todos los demás tipos de datos, incluso algunos datos complejos.

La función o método to_json devuelve una cadena, que es la representación JSON de lo que codificamos. Aquí hay algunos ejemplos:

=begin
 Codificar y decodificar JSON (JavaScript Object Notation)
 en el lenguaje de programación Ruby

 @author parzibyte
=end
entero = 1
flotante = 15.2
cadena = "parzibyte.me"
booleano = true
nulo = nil
arreglo = [1, 2, 3]
hash = {"clave" => "valor"}
puts entero.to_json
# 1
puts flotante.to_json
# 15.2
puts cadena.to_json
# "parzibyte.me"
puts booleano.to_json
# true
puts nulo.to_json
# null
puts arreglo.to_json
# [1,2,3]
puts hash.to_json
# {"clave":"valor"}

# Ahora un objeto más grande y complejo
mascota = {
 "nombre" => "Maggie",
 "edad" => 3,
 "peso" => 5.2,
 "amigos" => [
  {
   "nombre" => "Capuchina",
   "edad" => 2
  },
  {
   "nombre" => "Guayaba",
   "edad" => 1
  }
 ]
}

codificada = mascota.to_json
puts codificada
# {"nombre":"Maggie","edad":3,"peso":5.2,"amigos":[{"nombre":"Capuchina","edad":2},{"nombre":"Guayaba","edad":1}]}

Como se ve en el ejemplo, no importa el tipo de variable, todo se codifica de manera perfecta.

Decodificar JSON con Ruby

Para decodificar un JSON se usa al método JSON.parse, así:

decodificado = JSON.parse("la cadena json")

Lo que devuelve este método es incierto, pues es un genérico o una variable cuyo tipo no sabemos hasta que se decodifique. Aquí hay algunos ejemplos:

=begin
 Codificar y decodificar JSON (JavaScript Object Notation)
 en el lenguaje de programación Ruby

 @author parzibyte
=end

mascota = {
 "nombre" => "Maggie",
 "edad" => 3,
 "peso" => 5.2,
 "amigos" => [
  {
   "nombre" => "Capuchina",
   "edad" => 2
  },
  {
   "nombre" => "Guayaba",
   "edad" => 1
  }
 ]
}

codificada = mascota.to_json
# Para decodificar, usamos JSON.parse
decodificada = JSON.parse(codificada)
puts decodificada["nombre"]
# Maggie

puts JSON.parse('1.5')
# 1.5
nulo = JSON.parse('null')
if nulo === nil
 puts "Es nulo"
end
# Es nulo

Como vemos, puede devolver enteros, nulos o incluso algunos datos complejos. Recibe un string como entrada.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Tramitar acta de nacimiento en línea de manera instantánea

En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…

12 min hace

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esta web usa cookies.