我怎样才能把这个object字符串转换成仅仅是object。//字符串内的对象
"{\"text\"=>\"ID\", \"value\"=>\"id\"}"
//对象
{"text"=>"ID", "value"=>"id"}
5sxhfpxr1#
你可以用这个
require 'json' def string_parse_to_hash(string) modified_string = string .gsub(/:(\w+)/){"\"#{$1}\""} .gsub('=>', ':') .gsub("nil", "null") JSON.parse(modified_string) rescue {} end str = "{\"text\"=>\"ID\", \"value\"=>\"id\"}" puts string_parse_to_hash(str)
但是要注意,如果您不信任字符串的来源,您必须清理并验证其内容。
b09cbbtk2#
如果你喜欢危险的生活,这也是一个选择:
str = "{\"text\"=>\"ID\", \"value\"=>\"id\"}" parsed_hash = eval(str) # {"text"=>"ID", "value"=>"id"}
但这是非常危险的,取决于你从哪里得到你的输入。eval将字符串计算为ruby代码,因此可以注入任何有害的代码
eval
2条答案
按热度按时间5sxhfpxr1#
你可以用这个
但是要注意,如果您不信任字符串的来源,您必须清理并验证其内容。
b09cbbtk2#
如果你喜欢危险的生活,这也是一个选择:
但这是非常危险的,取决于你从哪里得到你的输入。
eval
将字符串计算为ruby代码,因此可以注入任何有害的代码