服务器正在使用返回嵌套数据结构的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) - 正是为了这些目的;) –