ruby 中hash转字符串以及字符串转hash
在特定场景下,某个字段要存一个hash才能满足动态变化的需求,然后hash存入数据库中最终是字符串,如果直接将hash.to_s 之后字符串
再转为hash需要使用eval这个不安全的操作,未找到其他合适的方法,也请看到博文有好方法的同学留言,谢谢。
下面是我的解决办法,
首先定义hash,hash转为json,
需要修改这个字符串的时候将字符串用json.parse 方法就能转为hash,然后使用store 对hash修改,然后再次存储为json存入字段值
require ‘json" ?> h => {:a=>1, :b=>2, "c"=>3, :e=>4, :m=>9} >> ?> h.to_json => "{"a":1,"b":2,"c":3,"e":4,"m":9}" >> json = h.to_json => "{"a":1,"b":2,"c":3,"e":4,"m":9}" >> str = JSON.parse json => {"a"=>1, "b"=>2, "c"=>3, "e"=>4, "m"=>9} >> str.class => Hash >> str.store "jj", "kk" => "kk" >> str => {"a"=>1, "b"=>2, "c"=>3, "e"=>4, "m"=>9, "jj"=>"kk"}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。