0Pricing
Ruby Academy · Aula

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'
end

Ida 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.parse transforma uma cadeia de caracteres em objetos Ruby
  • to_json / JSON.generate produzem JSON compacto
  • pretty_generate produz uma saída legível
  • symbolize_names: true produz chaves Symbol
  • Recupere JSON::ParserError quando 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

  1. Lendo e escrevendo JSON
  2. Trabalhando com CSV
  3. Configuração em YAML
  4. Escolhendo um formato
← Voltar para Ruby Academy