Parsing JSON with Ruby is actually extremely easy. All you have to do is have the json gem installed (gem install json
) and call the JSON.parse
method on the JSON data to convert it to ruby hashes. If you look at this small program here, you can see how I have implemented parsing JSON in Ruby.
#!/usr/bin/env ruby
require 'json'
require 'net/http'
require 'libnotify'
def parsejson
file = "http://api.openweathermap.org/data/2.5/find?q=London&mode=json"
response = Net::HTTP.get_response(URI.parse(file))
weatherjson = response.body
actual = JSON.parse(weatherjson)
# check for errors
if actual.has_key? 'Error'
raise "error with the url"
end
results = []
actual["list"].each do |listitem|
weather = listitem["weather"]
weather.each do |weath|
results.push(weath["description"])
end
main = listitem["main"]
temp = main["temp"] - 273.15
results.push ("%.2f" % temp)
end
return results
end