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]}