所以我有一些看起来像这样的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"
我想拉出access_token,所以我做
to_return = {token: responseJson[:access_token]}
但这给了我一个
TypeError:没有将Symbol隐式转换为整数
为什么呢?如何获取访问令牌?为什么到处都有随机反斜杠?
答案 0 :(得分:3)
to_json
没有解析JSON - 它完全相反:它将ruby对象转换为包含该对象的JSON表示的字符串。
从您的问题中不清楚response.body
是什么。它可能是一个字符串,或者取决于您的http库,它可能已经为您解析过了。
如果是后者那么
response.body["access_token"]
如果前者尝试
,那将是你的令牌JSON.parse(response.body)["access_token"]
答案 1 :(得分:0)
调用access_token时使用双引号。如下所示:
to_return = {token: responseJson["access_token"]}
或者反斜杠是转义分隔符,并确保首先解析JSON。