內置from_xml
Rails Hash
方法將正是你想要的。爲了讓您的response.parsed_response
正確映射到一個哈希,你需要gsub()
出新行:
hash = Hash.from_xml(response.parsed_response.gsub("\n", ""))
hash #=> {"Result"=>{"success"=>"true"}}
在解析Rails中的哈希的情況下,String
類型的對象not substantively different比那些Symbol
一般的編程觀點。但是,您可以應用Rails的symbolize_keys
方法來輸出:
symbolized_hash = hash.symbolize_keys
#=> {:Result=>{"success"=>"true"}}
正如你所看到的,symbolize_keys
不會對任何嵌套哈希操作,但你可以通過內部哈希潛在迭代和應用symbolize_keys
。
拼圖的最後一部分是將字符串"true"
轉換爲布爾值true
。據我所知,有沒有辦法做到這一點在地方的哈希值,但如果你遍歷/操作它,你可能實現像一個suggested in this post的解決方案:
def to_boolean(str)
return true if str == "true"
return false if str == "false"
return nil
end
基本上,當你到達內鍵值對,您可以將to_boolean()
應用於當前設置爲"true"
的值。在你的例子中,返回值是布爾值true
。
http://www.railstips.org/blog/archives/2008/08/11/parsing-xml-with-ruby/ –