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"}


你可能感兴趣的:(ruby)