首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回未定义的JavaScript对象

返回未定义的JavaScript对象
EN

Stack Overflow用户
提问于 2015-06-13 22:50:51
回答 1查看 76关注 0票数 0

我将向api端点发送一个http请求,该端点返回以下内容:

{ "status":200,"headers":"{\"server\":\"nginx\",\"date\":\"Sat,2015年6月13日22:29:35 GMT\",\"content-type\":\"application/json;字符集=utf-8\“,\”内容-长度\“:\”223\,\“连接\”:\“保持-活动”,\“状态\”:\“200 OK\",\”缓存-控制“:\”无缓存,无存储,必须-重新验证\“,”务实\“:\”no-cache\“,\”x-帧-选项“:\”SAMEORIGIN\“,\”更改\“:\”接受-编码“,\“x-ua兼容\”:\“IE=Edge,chrome=1\",chrome=1\domain=.twitch.tv;path=/;expires=Sun,14-6月-2015 10:29:35格林尼治时间;HttpOnly\",\“x-请求-id\”:\“lostsOfStringsStuffHere\”,\“x-运行时\”:\“0.403684\”,\“接受-范围”:\“字节\”,\“x-清漆”:\\“1124564703\”,\“年龄”:\“0\”,\"via\":\"1.1 via\“,\”x-mh-缓存“:\”rails-var-6db1a8;M\",\“前端-https\”:\“on\”},"body":"\"{\"access_token\":\"lostsOfStringsStuffHere\",\"refresh_token\":\"lostsOfStringsStuffHere\",\“scope\”:\“user_read\”}“”}

然后,我在反序列化响应主体之后运行:

代码语言:javascript
复制
var response = JSON.parse(response.body);

这给了我这个:

{ "access_token":"lostsOfStringsStuffHere","refresh_token":"lostsOfStringsStuffHere","scope":"user_read“}

但是,当我试图访问对象的各个项时,我得到了undefined

示例:

代码语言:javascript
复制
console.log(response.access_token); // undefined

我刚开始使用JavaScript来处理json,过去我使用了json_decode()函数来处理后端项目的json。

我已经做了一些搜索,但还没有遇到一个npm方案,这是完美的处理json。有人能推荐一个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-13 22:56:05

你不需要额外的图书馆。JavaScript是在JSON中构建的,会做得很好。您的问题是返回的字符串是转义的,所以当您在JSON.parse上执行response.body时,结果实际上是一个字符串。

您可以再次解析它:JSON.parse(JSON.parse(response.body)).access_token

然而,我要研究为什么身体被作为字符串返回。可能是您正在使用的API或http请求库的问题。我认为多余的字符串是不必要的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30824343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档