Analyser une chaîne JSON dans Ruby

Nurudeen Ibrahim 18 avril 2022
Analyser une chaîne JSON dans Ruby

Le JSON (JavaScript Object Notation) est un format populaire pour l’échange de données, utilisé principalement entre les applications Web pour envoyer et recevoir des données. Dans ce didacticiel, nous verrons comment analyser les chaînes JSON.

Des exemples courants de valeur JSON pourraient être :

  • une liste de valeurs entre crochets. Par exemple ["Orange", "Apple", [1, 2]]
  • une liste de clés/paires entourées d’accolades. Par exemple { "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }

Ces valeurs JSON se présentent parfois sous forme de chaîne, par exemple, en tant que réponse d’une API externe, et il est toujours nécessaire de les convertir en ce que Ruby peut faire fonctionner. Il y a une méthode parse du module JSON qui permet de faire ça.

Exemples de codes :

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)

Production :

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

Pour rendre le module JSON disponible dans notre code, nous devons d’abord exiger le fichier, et c’est ce que fait la première ligne de notre code.

Comme le montre l’exemple ci-dessus, JSON.parse convertit le json_string en un Ruby Array et convertit le another_json_string en un Ruby Hash.

Si vous avez une valeur JSON qui n’est pas sous forme de chaîne, vous pouvez appeler to_json pour la convertir d’abord en chaîne JSON, puis utiliser JSON.parse pour la convertir en tableau ou en hachage, selon le cas.

Exemples de codes :

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)

Production :

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