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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值