如何在ruby中将ruby格式的json字符串转换为json哈希?

我想访问类似哈希对象的json字符串,以便我可以使用像temp["anykey"]这样的键值来访问json。 如何将ruby格式的json字符串转换为json对象?

我有跟随json字符串

 temp = '{"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", "http_token"=>"375fe428b1d32787864264b830c54b97"}' 

您可以在temp json字符串上尝试eval方法

例:

 eval(temp) 

这将返回以下哈希值

 {"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", "http_token"=>"375fe428b1d32787864264b830c54b97"} 

希望这会有所帮助。

谢谢

你知道JSON.parse吗?

 require 'json' my_hash = JSON.parse('{"hello": "goodbye"}') puts my_hash["hello"] => "goodbye" 

如果您将此字符串解析为ruby对象,它将返回一个ruby Hash对象,您可以像这样得到它您可以为Ruby安装json gem

 gem install json 

您需要在代码中使用gem,如下所示:

 require 'rubygems' require 'json' 

然后你可以像这样解析你的JSON字符串:

 ruby_obj = JSON.parse(json_string) 

还有其他JSON for Ruby实现:

  • YAJL C绑定Ruby
  • JSON ::流

要将Ruby哈希转换为json字符串,只需调用to_json即可。

 require 'json' temp = {"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", "http_token"=>"375fe428b1d32787864264b830c54b97"} temp.to_json