Analizar una cadena JSON en Ruby

Nurudeen Ibrahim 18 abril 2022
Analizar una cadena JSON en Ruby

El JSON (JavaScript Object Notation) es un formato popular para el intercambio de datos, utilizado principalmente entre aplicaciones web para enviar y recibir datos. En este tutorial, veremos cómo analizar cadenas JSON.

Ejemplos comunes de valor JSON podrían ser:

  • una lista de valores entre corchetes. Ej. ["Orange", "Apple", [1, 2]]
  • una lista de claves/pares entre llaves. Ej. { "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }

Estos valores JSON a veces vienen en forma de cadena, por ejemplo, como una respuesta de una API externa, y siempre existe la necesidad de convertirlos en lo que Ruby puede funcionar. Hay un método parse del módulo JSON que nos permite hacer eso.

Códigos de ejemplo:

require 'json'

json_string = '["Orange", "Apple", [1, 2]]'
another_json_string = '{ "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }'

puts JSON.parse(json_string)
puts JSON.parse(another_json_string)

Producción :

["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}

Para que el módulo JSON esté disponible en nuestro código, primero necesitamos solicitar el archivo, y eso es lo que hace la primera línea de nuestro código.

Como se muestra en el ejemplo anterior, JSON.parse convierte json_string en un Ruby Array y convierte another_json_string en un Ruby Hash.

Si tiene un valor JSON que no está en forma de cadena, puede llamar a to_json para convertirlo primero en una cadena JSON, luego use JSON.parse para convertirlo en un Array o Hash, según sea el caso.

Códigos de ejemplo:

require 'json'

json_one = ["Orange", "Apple", [1, 2]]
json_two = { "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }

puts JSON.parse(json_one.to_json)
puts JSON.parse(json_two.to_json)

Producción :

["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}