【发布时间】:2017-07-08 18:29:24
【问题描述】:
服务器正在使用返回嵌套数据结构的 JSON API。我尝试使用 JSON.parse 解析它,但默认情况下它会将 json 字符串转换为字符串哈希。
样本数据
{
"data"=>
{
"id"=>"1",
"type"=>"users",
"attributes"=>
{
"email"=>"tia_heller@lebsack.info",
"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"=>"darrion_hackett@weberharvey.io", "name"=>"Cleo Braun"}}}
将嵌套字符串散列递归转换为符号散列的最佳方法是什么?
期望的结果
所有值都可以使用符号访问,例如json_response[:data][:attributes]。
【问题讨论】:
-
有
deep_symbolize_keys- 正是为了这些目的;) -
@AndreyDeineko,这是给
rails的。问题是ruby
标签: ruby