Parse JSON using Ruby
JSON, or JavaScript Object Notation, is a lightweight data interchange format. JSON data maps easily to data structures in most of the modern programming languages. Many of Yahoo!'s Web Service APIs optionally provide you with JSON output, simply by appending a output=json to your query string.
JSON Libraries for Ruby
The following example shows how to parse JSON data in Ruby. We'll use the JSON library for Ruby available here for the same. It is available as a gem, so installation is straightforward:
gem install json
Example: News Search
require 'rubygems'
require 'json'
require 'net/http'
def news_search(query, results=10, start=1)
base_url = "http://search.yahooapis.com/NewsSearchService/V1/newsSearch?appid=YahooDemo&output=json"
url = "#{base_url}&query=#{URI.encode(query)}&results=#{results}&start=#{start}"
resp = Net::HTTP.get_response(URI.parse(url))
data = resp.body
# we convert the returned JSON data to native Ruby
# data structure - a hash
result = JSON.parse(data)
# if the hash has 'Error' as a key, we raise an error
if result.has_key? 'Error'
raise "web service error"
end
return result
end
Usage of the above:
irb(main):001:0> require 'ruby-json'
=> true
irb(main):002:0> news = news_search('ruby', 2)
=> [...]
irb(main):003:0> news['ResultSet']['Result'].each { |result|
irb(main):004:1* print "#{result['Title']} => #{result['Url']}\n"
irb(main):005:1> }
Sun, Ruby, and Java: An Interesting Turn of Events => http://www.linuxjournal.com/node/1000091
BBEdit 8.5 a?ade soporte de Ruby y mejoras de interfaz => http://www.idg.es/macworld/content.asp?idn=50291
=> [...]
irb(main):006:0>
Each result is a Ruby hash containing a number of keys.
Further reading
- JSON.org, for more about JSON
- JSON library for Ruby
Ready to get started?
By applying for an Application ID for this service, you hereby agree to the Terms of Use
Yahoo! Groups Discussions
view all
CASUAL BROWSING MAKES U EARNING
Thu, 04 Sep 2008
Rboss RubyGem for interacting with Yahoo Boss Search
Fri, 22 Aug 2008
Using the Yahoo Address Book APIs with ROR - a step by step tutorial
Tue, 08 Jul 2008
Re: Hi, I coded a Ruby library for Yahoo LifeType API.
Thu, 17 Apr 2008


Send Your Suggestions