How do I convert a Ruby hash so that all of its keys are symbols?

后端 未结 15 1850
不思量自难忘°
不思量自难忘° 2020-12-04 19:01

I have a Ruby hash which looks like:

{ \"id\" => \"123\", \"name\" => \"test\" }

I would like to convert it to:

{ :id         


        
15条回答
  •  不知归路
    2020-12-04 19:42

    def symbolize_keys(hash)
       new={}
       hash.map do |key,value|
            if value.is_a?(Hash)
              value = symbolize_keys(value) 
            end
            new[key.to_sym]=value
       end        
       return new
    
    end  
    puts symbolize_keys("c"=>{"a"=>2,"k"=>{"e"=>9}})
    #{:c=>{:a=>2, :k=>{:e=>9}}}
    

提交回复
热议问题