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