Codificar y decodificar JSON en Ruby usando to_json y JSON.parse
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.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.