Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-转换由&;表示的字符串;陷入混乱_Ruby_String_Hash - Fatal编程技术网

Ruby-转换由&;表示的字符串;陷入混乱

Ruby-转换由&;表示的字符串;陷入混乱,ruby,string,hash,Ruby,String,Hash,我有一个字符串的形式 str="a=b&c=d&e=f&...." 问题是我如何将上面的str转换成下面的形式 { "a" => "b" , "c" => "d" , "e" => "f" .... } 你可以用这个方法 你可以用这个方法 最简单的答案是: hash = Rack::Utils.parse_query("a=b&c=d&e=f") => {"a"=>"b", "c"=>"d", "e"=>"

我有一个字符串的形式

str="a=b&c=d&e=f&...."
问题是我如何将上面的str转换成下面的形式

{ "a" => "b" ,  "c" => "d" , "e" => "f" .... }
你可以用这个方法

你可以用这个方法

最简单的答案是:

hash = Rack::Utils.parse_query("a=b&c=d&e=f")

=> {"a"=>"b", "c"=>"d", "e"=>"f"} #output


如果您想再次恢复,则:

hash.to_query
最简单的答案是:

hash = Rack::Utils.parse_query("a=b&c=d&e=f")

=> {"a"=>"b", "c"=>"d", "e"=>"f"} #output


如果您想再次恢复,则:

hash.to_query
只是出于好奇:

▶ q = "a=b&c=d&e=f"
▶ require 'json'
#⇒ true
▶ JSON.parse "{\"#{q}\"}".gsub /[=&]/, Hash('=' => '":"', '&' => '","')
#⇒ {
#  "a" => "b",
#  "c" => "d",
#  "e" => "f"
#}
有裂缝的直道:

q.split('&').map { |e| e.split('=') }.to_h
只是出于好奇:

▶ q = "a=b&c=d&e=f"
▶ require 'json'
#⇒ true
▶ JSON.parse "{\"#{q}\"}".gsub /[=&]/, Hash('=' => '":"', '&' => '","')
#⇒ {
#  "a" => "b",
#  "c" => "d",
#  "e" => "f"
#}
有裂缝的直道:

q.split('&').map { |e| e.split('=') }.to_h

这是一个偶然的HTTP参数字符串吗?如果您在web框架的上下文中执行此操作,将有一种内置的方法来处理此问题。这是一个偶然的HTTP参数字符串吗?如果您在web框架的上下文中执行此操作,将有一种内置的方法来处理此问题。