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.
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.
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.
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.
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.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.