我想访问类似哈希对象的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"}'
答案 0 :(得分:9)
您知道JSON.parse吗?
require 'json'
my_hash = JSON.parse('{"hello": "goodbye"}')
puts my_hash["hello"] => "goodbye"
答案 1 :(得分:5)
如果你将这个字符串解析为ruby对象,它将返回一个ruby Hash对象,你可以这样得到它 您可以为Ruby
安装 json gemgem install json
您需要在代码中使用gem:
require 'rubygems'
require 'json'
然后你可以像这样解析你的JSON字符串:
ruby_obj = JSON.parse(json_string)
还有其他JSON for Ruby实现:
答案 2 :(得分:2)
您可以在 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"}
希望这会有所帮助。
由于
答案 3 :(得分:1)
要将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