我从 Disqus 得到以下(str),预期为 JSON:
?({"code": 0, "response": {"username": "FakeGrimlock", "about": "ME GIANT ROBOT DINOSAUR。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和啤酒。" ,“名称”:“假钢锁”,“网址”:“ http://WWW.FAKEGRIMLOCK.COM ”,“profileUrl”:“ http://disqus.com/FakeGrimlock/ ”,“emailHash”:“07bb07626b48f05c093d70fb69ef8a76” ,“头像”:{“永久链接”:“ http://disqus.com/api/users/avatars/FakeGrimlock.jpg ”,“缓存”:“ http://mediacdn.disqus.com/uploads/users/437 /9401/avatar92.jpg?1313888496 "}, "isAnonymous": false, "id": "4379401"}});
所以我修复它...
str='[' + str.substr(2, str.length-4) + ']'
这给了我们这个:
[{“code”:0,“response”:{“username”:“FakeGrimlock”,“about”:“ME GIANT ROBOT DINOSAUR。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和啤酒。”, “名称”:“假钢锁”,“网址”:“ http://WWW.FAKEGRIMLOCK.COM ”,“profileUrl”:“ http://disqus.com/FakeGrimlock/ ”,“emailHash”:“07bb07626b48f05c093d70fb69ef8a76”, “头像”:{“永久链接”:“ http://disqus.com/api/users/avatars/FakeGrimlock.jpg ”,“缓存”:“ http://mediacdn.disqus.com/uploads/users/437/ 9401/avatar92.jpg?1313888496 "}, "isAnonymous": false, "id": "4379401"}}]
...它在 JSONLINT 处传递,然后尝试将其放入此处的对象中...
var obj=JSON.parse(str);
console.log(obj) 显示:
[ {代码:0,响应:{用户名:'FakeGrimlock',关于:'ME GIANT ROBOT DINOSAUR。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和啤酒。',名称:'FAKE GRIMLOCK',url: 'http ://WWW.FAKEGRIMLOCK.COM',profileUrl:' http ://disqus.com/FakeGrimlock/',emailHash:' 07bb07626b48f05c093d70fb69ef8a76 ',头像:[对象], isAnonymous:假,id:'4379401' } } ]
然后它在这里失败了:
console.log(obj.response[0])// response is undefined.
在 JSONLINT 中测试 obj 输出显示错误,我假设 JSON.Parse 删除了“”。
无论如何,我无法访问数据。