【发布时间】:2011-12-06 13:29:17
【问题描述】:
我从 Disqus 收到以下 (str),预期为 JSON:
?({"code": 0, "response": {"username": "FakeGrimlock", "about": "ME GIANT ROBOT DINOSAUR。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和BEER.", "name": "FAKE GRIMLOCK", "url": "http://WWW.FAKEGRIMLOCK.COM", "profileUrl": "http://disqus.com/FakeGrimlock/", "emailHash": "07bb07626b48f05c093d70fb69ef8a76", "avatar": {"permalink": “http://disqus.com/api/users/avatars/FakeGrimlock.jpg”、“缓存”:“http://mediacdn.disqus.com/uploads/users/437/9401/avatar92.jpg?1313888496”}、“isAnonymous”:假、“id”:“4379401”}});
所以我修复它...
str='[' + str.substr(2, str.length-4) + ']'
这给了我们这个:
[{"code": 0, "response": {"username": "FakeGrimlock", "about": "ME GIANT ROBOT DINOSAUR。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和啤酒. ", "name": "FAKE GRIMLOCK", "url": "http://WWW.FAKEGRIMLOCK.COM", "profileUrl": "http://disqus.com/FakeGrimlock/", "emailHash": "07bb07626b48f05c093d70fb69ef8a76", "avatar": {"permalink": " http://disqus.com/api/users/avatars/FakeGrimlock.jpg", "cache": "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', 关于:“我的巨型机器人恐龙。为启动编写代码。吃无聊或愚蠢的人。喝咖啡和啤酒。 ', 名称:'假钢锁', 网址:'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 删除了“”。
无论如何,我无法访问数据。
【问题讨论】:
标签: json parsing node.js disqus