Ruby将字符串解析为json

Ruby将字符串解析为json,json,ruby,Json,Ruby,因此,我有一些类似于这样的json,是我通过执行response.body.to_json从其他json中提取出来的: {\n \"access_token\": \"<some_access_token>\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600,\n \"id_token\": \<some_token>\"\n}\n" 但这给了我一个机会 TypeError:没有将符号隐式转换为整数 为什么??

因此,我有一些类似于这样的json,是我通过执行
response.body.to_json
从其他json中提取出来的:

{\n \"access_token\": \"<some_access_token>\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600,\n \"id_token\": \<some_token>\"\n}\n"
但这给了我一个机会

TypeError:没有将符号隐式转换为整数


为什么??如何取出我的访问令牌?为什么到处都有随机反斜杠?

调用access\u令牌时使用双引号。如下图所示:

to_return = {token: responseJson["access_token"]}

或反斜杠是转义分隔符,请确保首先解析JSON

to_json
不解析json——它的作用完全相反:它将一个ruby对象转换为一个字符串,其中包含该对象的json表示形式

从你的问题中不清楚什么是
响应。body
。它可能是一个字符串,或者根据您的http库,可能已经为您解析了它

如果是后者那么

response.body["access_token"]
将是您的代币,如果是前者,请尝试

JSON.parse(response.body)["access_token"]

我不是用我的
to_json
调用解析json吗?@praks5432您仍然使用
to_json
@praks5432解析json,但解析后您使用字符串[“访问令牌”]而不是符号[:访问令牌]来访问它。解析json并将输出粘贴到此处。你可以使用JSON.parse(你的变量)。试试这个例子
s=“{\n\”访问令牌\“:\”,\n\“令牌类型\“:”承载者\“,\n\”过期\“:3600,\n\”id\u令牌\“:\”\n}\n”
res=JSON.parse(s)
res[“访问令牌”
JSON.parse(response.body)["access_token"]