Leggere e scrivere JSON
JSON.parse e generate
Leggere e scrivere JSON è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.
Che cos'è JSON?
JSON (JavaScript Object Notation) è un formato testuale leggero per lo scambio di dati. Si mappa facilmente su hash e array Ruby.
Richieda la libreria json per utilizzarlo.
require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))Analizzare testo JSON
JSON.parse trasforma una stringa JSON in oggetti Ruby: gli oggetti diventano Hashes e gli array diventano Arrays.
require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])Generare testo JSON
JSON.generate (oppure to_json sugli oggetti) converte i dati Ruby in una stringa JSON compatta.
require 'json'
arr = [1, 2, { ok: true }]
puts(arr.to_json)Formattazione leggibile
JSON.pretty_generate produce JSON rientrato e leggibile, ideale per i file di configurazione e il debugging.
require 'json'
data = { name: 'Ruby', tags: ['fun', 'oop'] }
puts(JSON.pretty_generate(data))Chiavi Symbol durante l'analisi
Per impostazione predefinita, le chiavi analizzate sono String. Passi symbolize_names: true per ottenere invece chiavi Symbol.
require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])Strutture annidate
JSON supporta l'annidamento. L'analisi ricostruisce l'intero albero di Hashes e Arrays.
require 'json'
text = '{"user":{"name":"Ada","roles":["admin","dev"]}}'
h = JSON.parse(text)
puts(h['user']['name'])
puts(h['user']['roles'][1])Mappatura dei tipi
I tipi JSON corrispondono ai tipi Ruby:
- oggetto → Hash, array → Array
- stringa → String, numero → Integer/Float
- true/false → true/false, null → nil
require 'json'
h = JSON.parse('{"a":1,"b":1.5,"c":null,"d":true}')
puts(h['a'].class)
puts(h['c'].inspect)Scrivere JSON in un file
Combini pretty_generate con File.write per salvare i dati su disco.
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'data.json')
File.write(path, JSON.pretty_generate({ ok: true }))
puts(File.read(path))Leggere JSON da un file
Legga il contenuto del file e lo analizzi in un solo passaggio.
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'])Gestire gli errori di analisi
Un JSON malformato genera JSON::ParserError. Lo gestisca con Rescue per trattare l'input non valido in modo appropriato.
require 'json'
begin
JSON.parse('{not valid}')
rescue JSON::ParserError => e
puts 'Invalid JSON caught'
endPercorso di andata e ritorno
Generare e poi analizzare i dati dovrebbe restituire dati equivalenti: è un utile controllo di coerenza.
require 'json'
original = { id: 7, tags: ['a', 'b'] }
back = JSON.parse(original.to_json, symbolize_names: true)
puts(back == original)Verifica rapida
Quale opzione fa sì che JSON.parse restituisca chiavi Symbol invece di chiavi String?
Riepilogo: leggere e scrivere JSON
È possibile trasferire dati da e verso JSON:
JSON.parseconverte una stringa in oggetti Rubyto_json/JSON.generateproducono JSON compattopretty_generateproduce un output leggibilesymbolize_names: trueproduce chiavi Symbol- Gestisca
JSON::ParserErrorin caso di input non valido
require 'json'
puts(JSON.parse('[1,2,3]').sum)Domande Frequenti
La lezione «Leggere e scrivere JSON» è gratuita?
Sì — il testo completo di «Leggere e scrivere JSON» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.
Cosa imparerò in «Leggere e scrivere JSON»?
JSON.parse e generate Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ruby Academy?
Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Leggere e scrivere JSON»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ruby Academy?
Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Leggere e scrivere JSON
- Lavorare con CSV
- Configurazione YAML
- Scegliere un formato