Lendo e escrevendo JSON
JSON.parse e generate.
Lendo e escrevendo JSON é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
O que é JSON?
JSON (Notação de Objetos JavaScript) é um formato de texto leve para troca de dados. Ele corresponde diretamente a hashes e matrizes do Ruby.
Exija a biblioteca json para usá-lo.
require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))Analisando texto JSON
JSON.parse transforma uma cadeia de caracteres JSON em objetos Ruby: objetos tornam-se Hashes, e matrizes tornam-se Arrays.
require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])Gerando texto JSON
JSON.generate (ou to_json nos objetos) converte dados Ruby em uma cadeia de caracteres JSON compacta.
require 'json'
arr = [1, 2, { ok: true }]
puts(arr.to_json)Impressão formatada
JSON.pretty_generate produz JSON legível para pessoas e indentado, ideal para arquivos de configuração e depuração.
require 'json'
data = { name: 'Ruby', tags: ['fun', 'oop'] }
puts(JSON.pretty_generate(data))Chaves Symbol na análise
Por padrão, as chaves analisadas são Strings. Passe symbolize_names: true para obter chaves Symbol.
require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])Estruturas aninhadas
JSON permite aninhamento. A análise reconstrói a árvore completa de 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])Mapeamento de tipos
Os tipos JSON correspondem aos tipos Ruby:
- objeto → Hash, matriz → Array
- cadeia de caracteres → String, número → 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)Gravando JSON em um arquivo
Combine pretty_generate com File.write para salvar dados no disco.
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'data.json')
File.write(path, JSON.pretty_generate({ ok: true }))
puts(File.read(path))Lendo JSON de um arquivo
Leia o conteúdo do arquivo e analise-o em uma única etapa.
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'])Lidando com erros de análise
JSON malformado gera JSON::ParserError. Recupere esse erro para lidar adequadamente com entradas inválidas.
require 'json'
begin
JSON.parse('{not valid}')
rescue JSON::ParserError => e
puts 'Invalid JSON caught'
endIda e volta
Gerar e depois analisar deve retornar dados equivalentes, uma verificação de consistência útil.
require 'json'
original = { id: 7, tags: ['a', 'b'] }
back = JSON.parse(original.to_json, symbolize_names: true)
puts(back == original)Verificação rápida
Qual opção faz JSON.parse retornar chaves Symbol em vez de chaves String?
Recapitulação: lendo e gravando JSON
O senhor pode enviar dados para JSON e recuperá-los:
JSON.parsetransforma uma cadeia de caracteres em objetos Rubyto_json/JSON.generateproduzem JSON compactopretty_generateproduz uma saída legívelsymbolize_names: trueproduz chaves Symbol- Recupere
JSON::ParserErrorquando a entrada for inválida
require 'json'
puts(JSON.parse('[1,2,3]').sum)Perguntas Frequentes
A aula “Lendo e escrevendo JSON” é grátis?
Sim — o texto completo de “Lendo e escrevendo JSON” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Lendo e escrevendo JSON”?
JSON.parse e generate. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Lendo e escrevendo JSON”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Lendo e escrevendo JSON
- Trabalhando com CSV
- Configuração em YAML
- Escolhendo um formato