How to Parse JSON in Ruby
Ruby's standard library includes json. Require it, then use JSON.parse to read and JSON.generate or JSON.pretty_generate to write.
Parse a JSON string
JSON.parse returns hashes and arrays. Pass symbolize_names: true for symbol keys.
ruby
require "json"
text = '{"name":"Ada","roles":["admin","dev"]}'
data = JSON.parse(text)
puts data["name"] # Ada
sym = JSON.parse(text, symbolize_names: true)
puts sym[:name] # AdaGenerate JSON
JSON.generate produces compact JSON; JSON.pretty_generate indents it.
ruby
obj = { name: "Ada", active: true }
puts JSON.generate(obj) # compact
puts JSON.pretty_generate(obj) # indentedHandle parse errors
Invalid JSON raises JSON::ParserError.
ruby
begin
data = JSON.parse(text)
rescue JSON::ParserError => e
puts "Invalid JSON: #{e.message}"
end