我有一个字符串
string = '{"a" => [{"b" => 2}]}'
eval(string)
# => {"a" => [{"b" => 2}]}
我需要替代方法才能获得类似{"a" => [{"b" => 2}]}
答案 0 :(得分:0)
将数据存储在将以编程方式解析的字符串中时,最好使用标准化的数据交换格式(如JSON)格式化这些字符串。格式化为JSON的字符串如下所示:
{"a": [{"b": 2}]}
如果您可以控制如何在Excel中保存数据,则应确保将其保存为JSON格式。如果由于某种原因,您不允许在excel中修改数据的格式,那么您的下一个最佳选择是在解析之前将其转换为JSON。
幸运的是,数据已经非常类似于JSON了。唯一的区别是JSON使用:
而不是=>
,所以你可以这样做:
require "json"
string = '{"a" => [{"b" => 2}]}'.gsub("=>", ":")
data = JSON.parse string
p data # => {"a" => [{"b" => 2}]}