Lire et écrire du JSON
JSON.parse et generate
Lire et écrire du JSON est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que JSON ?
JSON (JavaScript Object Notation) est un format textuel léger destiné à l'échange de données. Il correspond facilement aux hachages et aux tableaux Ruby.
Chargez la bibliothèque json pour l'utiliser.
require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))Analyser du texte JSON
JSON.parse transforme une chaîne JSON en objets Ruby : les objets deviennent des hachages et les tableaux deviennent des tableaux.
require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])Générer du texte JSON
JSON.generate (ou to_json sur les objets) convertit les données Ruby en une chaîne JSON compacte.
require 'json'
arr = [1, 2, { ok: true }]
puts(arr.to_json)Mise en forme lisible
JSON.pretty_generate produit un JSON indenté et lisible par une personne, idéal pour les fichiers de configuration et le débogage.
require 'json'
data = { name: 'Ruby', tags: ['fun', 'oop'] }
puts(JSON.pretty_generate(data))Clés symboliques lors de l'analyse
Par défaut, les clés analysées sont des chaînes de caractères. Transmettez symbolize_names: true pour obtenir des clés symboliques à la place.
require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])Structures imbriquées
JSON prend en charge l'imbrication. L'analyse reconstruit l'arborescence complète des hachages et des tableaux.
require 'json'
text = '{"user":{"name":"Ada","roles":["admin","dev"]}}'
h = JSON.parse(text)
puts(h['user']['name'])
puts(h['user']['roles'][1])Correspondance des types
Les types JSON correspondent aux types Ruby :
- objet → hachage, tableau → tableau
- chaîne → chaîne de caractères, nombre → entier/nombre à virgule flottante
- vrai/faux → vrai/faux, nul → nil
require 'json'
h = JSON.parse('{"a":1,"b":1.5,"c":null,"d":true}')
puts(h['a'].class)
puts(h['c'].inspect)Écrire du JSON dans un fichier
Combinez pretty_generate avec File.write pour enregistrer des données sur le disque.
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'data.json')
File.write(path, JSON.pretty_generate({ ok: true }))
puts(File.read(path))Lire du JSON depuis un fichier
Lisez le contenu du fichier et analysez-le en une seule étape.
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'cfg.json')
File.write(path, '{"port":8081}')
cfg = JSON.parse(File.read(path))
puts(cfg['port'])Gérer les erreurs d'analyse
Un JSON mal formé déclenche JSON::ParserError. Interceptez cette erreur pour gérer les données d'entrée incorrectes avec élégance.
require 'json'
begin
JSON.parse('{not valid}')
rescue JSON::ParserError => e
puts 'Invalid JSON caught'
endConversion aller-retour
Générer des données puis les analyser devrait renvoyer des données équivalentes, ce qui constitue une vérification de cohérence utile.
require 'json'
original = { id: 7, tags: ['a', 'b'] }
back = JSON.parse(original.to_json, symbolize_names: true)
puts(back == original)Vérification rapide
Quelle option permet à JSON.parse de renvoyer des clés symboliques plutôt que des clés de chaîne de caractères ?
Récapitulatif : lire et écrire du JSON
Vous pouvez faire entrer des données dans JSON et les en extraire :
JSON.parsetransforme une chaîne en objets Rubyto_json/JSON.generateproduisent du JSON compactpretty_generateproduit une sortie lisiblesymbolize_names: trueproduit des clés symboliques- Interceptez
JSON::ParserErroren cas de données d'entrée incorrectes
require 'json'
puts(JSON.parse('[1,2,3]').sum)Questions Fréquemment Posées
La leçon « Lire et écrire du JSON » est-elle gratuite ?
Oui — le texte complet de « Lire et écrire du JSON » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lire et écrire du JSON » ?
JSON.parse et generate Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Lire et écrire du JSON » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?
Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Lire et écrire du JSON
- Utiliser CSV
- Configuration YAML
- Choisir un format