Ruby / Rails - разбирать JSON и разбивать объект для преобразования в datetime - PullRequest
1 голос
/ 21 декабря 2011

У меня есть следующий код:

page = Net::HTTP.get_response(URI.parse('http://www.enhancetv.com.au/tvguide/rss/melbournerss.php')).body rescue nil
show_info = Hash.from_xml(page).to_json
puts show_info

Который выводит следующий JSON:

{"rss":{"version":"2.0","channel":{"title":"EnhanceTV Melbourne TV Guide ","description":null,"link":"http://www.enhancetv.com.au","lastBuildDate":"Wed, 21 Dec
2011 10:25:55 1000","generator":"FeedCreator 1.7.2","item":[{"title":"Toasted TV - TEN - 07:00:00 - 21/12/2011","link":"http://www.enhancetv.com.au/tvguide/","d
escription":"Join the team for the latest in gaming, sport, gadgets, pop culture, movies, music and other seriously fun stuff! Featuring a variety of your favou
rite cartoons."},{"title":"Totally Wild - TEN - 08:00:00 - 21/12/2011","link":"http://www.enhancetv.com.au/tvguide/","description":"The Totally Wild team brings
 you the latest in action, adventure and wildlife from Australia and around theglobe."},{"title":"Explore: Africa's Rift Valley - SBS ONE - 19:30:00 - 21/
12/2011","link":"http://www.enhancetv.com.au/tvguide/","description":"Simon Reeve leads a team of journalists on a spectacular journey down East Africa's R
ift Valley. From the tiny country of Djibouti, which is the centre of America's military presence in Africa, to the wide open plains of Kenya, the team enc
ounter awe-inspiring landscapes, rich culture and amazing wildlife."}]}}}

Прежде всего, я бы хотел иметь возможность просматривать каждый из элементов.

Это то, что у меня есть, но выдает ошибку. Я не совсем уверен, как правильно перебрать проанализированный JSON:

result = JSON.parse(show_info) # convert JSON data to native ruby

result["channel"].each do |a|
    puts a['title']
    puts a['description']
    puts a['link']
end

Это дает следующую ошибку:

scraper.rb:118:in `<main>': undefined method `each' for "rss":String (NoMethodEr
ror)

Я бы тогда хотел иметь возможность split на "title", чтобы я мог преобразовать время и дату в DateTime объект для использования позже.

Заранее спасибо.

1 Ответ

0 голосов
/ 21 декабря 2011

Я решил использовать Nokogiri для анализа XML вместо преобразования XML в JSON.

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...