[英]Parsing XML HTTParty response
我正在使用HTTParty從api獲取數據。 我設法取回了XML響應,看起來HTTParty已將該xml響應轉換為Ruby。
如何瀏覽哈希並獲取所需的數據? 例如,說我想要“名稱”,即“ 29TH AVENUE STN / ARBUTUS”。
該API密鑰工作正常,因為我收到了回復。
只是不太確定如何導航並獲取所需的數據,並將其放入我的視圖中。
<% @courses.each do |course| %>
<%= course %>
<% end %>
["Route", {
"RouteNo" => "016", "Name" => "29TH AVENUE STN/ARBUTUS ", "OperatingCompany" => "CMBC", "Patterns" => {
"Pattern" => [{
"PatternNo" => "E5TP", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-E5TP.kmz"
}, "Direction" => "EAST"
}, {
"PatternNo" => "EB1", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-EB1.kmz"
}, "Direction" => "EAST"
}, {
"PatternNo" => "EB5", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-EB5.kmz"
}, "Direction" => "EAST"
}]
}
}]
class Checker
include HTTParty
base_uri 'http://api.translink.ca/rttiapi/v1/routes'
default_params apikey: "[my proper api key]"
format :xml
def self.for term
get("", query: {stopNo: term})["Routes"]["Route"]["RouteNo"]
end
end
class TimesController < ApplicationController
def index
@search_term = '51048'
@courses = Checker.for(@search_term)
end
end
假設您顯示了一個響應:
resp = ["Route", {
"RouteNo" => "016", "Name" => "29TH AVENUE STN/ARBUTUS ", "OperatingCompany" => "CMBC", "Patterns" => {
"Pattern" => [{
"PatternNo" => "E5TP", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-E5TP.kmz"
}, "Direction" => "EAST"
}, {
"PatternNo" => "EB1", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-EB1.kmz"
}, "Direction" => "EAST"
}, {
"PatternNo" => "EB5", "Destination" => "29TH AVE STN", "RouteMap" => {
"Href" => "http://nb.translink.ca/geodata/trip/016-EB5.kmz"
}, "Direction" => "EAST"
}]
}
}]
依次由兩個元素組成的數組,第一個是“ Route”,最后一個是具有所有屬性的哈希,要簡單地使用該名稱即可:
resp.last['Name']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.