0
"{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}"

我以字符串形式收到此响应,我需要提取 security_token 值。我试图通过 eval 方法将字符串转换为 Hash。似乎不起作用,我需要进行正则表达式匹配。

4

3 回答 3

2

你可以这样做:

require 'json'
a =  JSON.load "{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}"
p a["security_token"]  #=> "/cpsess8233434446"
于 2013-03-12T14:12:56.687 回答
2

您需要解析 JSON 数据..

result = "{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}" 
h = JSON.parse(result)
h['security_token']      # => "/cpsess8233434446"
于 2013-03-12T14:13:32.740 回答
1

您可以 JSON.load 数据并过滤 ['security_token'] 或使用 .match(/security_token/) 样式的正则表达式。

我建议先于未来的可读性和代码维护。

于 2013-03-12T14:14:44.297 回答