服務器正在使用返回嵌套數據結構的JSON API。我試圖用JSON.parse
解析它,但默認情況下它將json字符串轉換爲字符串哈希。如何使用Ruby將嵌套字符串散列轉換爲符號散列?
樣本數據
{
"data"=>
{
"id"=>"1",
"type"=>"users",
"attributes"=>
{
"email"=>"[email protected]",
"name"=>"Tanner Kreiger"
}
}
}
我在下面試圖代碼,但它只能轉換
def json_body
str_hash = JSON.parse(response.body)
str_hash.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
end
我也試圖從Rails的symbolize_keys
只轉換爲單級(不是孩子哈希)第一級也是如此(參見:data
和其餘部分是相同的),
{:data=>{"id"=>"1", "type"=>"users", "attributes"=>{"email"=>"[email protected]", "name"=>"Cleo Braun"}}}
將嵌套字符串散列遞歸轉換爲符號散列的最佳方法是什麼?
所需的結果
所有值可以使用符號,像json_response[:data][:attributes]
是訪問。
有['deep_symbolize_keys'(http://api.rubyonrails.org/classes/Hash.html#method-i-deep_symbolize_keys) - 正是爲了這些目的;) –