我正在使用LinkedIn API來獲取公司的詳細信息。他們還派遣一個XML響應,所以我只是轉換的XML使用.to_hash
方法哈希 這是一個示例哈希我越來越:http://pastebin.com/1bXtHZ2F優化搜索多維紅寶石散列的方法
,我想要解析此數據並獲取詳細信息,如電話號碼,城市,郵政編碼等。
響應的結構不一致。有時位置字段本身丟失或postal_code
僅在第四個位置可用。
我嘗試了兩種方式:
1.
def phone(locations)
(locations && locations["values"][0]["contactInfo"]["phone1"]) || nil
end
這不是工作,如果電話號碼中的第一個數組
2.
def phone(locations)
if locations["locations"]["total"].to_i == 1
locations["locations"]["location"]["contact_info"]["phone1"]
else
locations["locations"]["location"].each do |p|
if (!p["contact_info"]["phone1"].nil? || !p['contact_info'].nil?)
return p["contact_info"]["phone1"]
break
end
end
end
end
中不可用如果"location"
散列本身從響應中丟失,則這不起作用。我需要一個解決方案,我可以使用密鑰"city"
,"phone"
和"postal_code"
進行搜索,並在存在的情況下進行更新。如果它返回一個數組,則解析該數組並獲取非空數據。
我也讀過這個StackOverflow answer。
所以你想只從所有部件的位置獲得數據(例如,有城市和POSTAL_CODE和PHONE1第一位置),或者是你快樂混搭(從第一所在地的城市和POSTAL_CODE ,phone1從第二個位置) – SteveTurczyn
不,我需要城市和postal_code從相同的位置和電話號碼可以從任何其他location.This更具有意義full.You不能從一個位置獲得城市和postal_code從其他權利? – Rajanand02
所以你說的位置可能存在,但它可能沒有地址節點,或者它可能沒有聯繫節點。 – SteveTurczyn