在Node.js中,JSON.parse出现意外结果

3
我正在向一个网站发送一个http请求(来自node.js),该网站返回一个JSON对象。我得到了预期的JSON文件。但是当我解析JSON文本时,我的程序不能执行任何操作。
var URL = 'http://www.omdbapi.com/?t=' + movie + '&y=&plot=short&r=json';
requestify.get(URL).then(function (response) {
    console.log(response.getBody()); // It prints correctly
    var jsonBody =  response.getBody();
    var jsonObject = JSON.parse(jsonBody);
    if (jsonObject.Response == 'False') {
        console.log('False'); //not printed
    } else {
        console.log('true'); //Not printed
    }
});

样例JSON输出:

{"Response":"False","Error":"Movie not found!"}
1个回答

4

response.body 是原始文本响应。只要您指定了正确的 content-type 标头,response.getBody() 应该已经返回解析后的 JSON 响应。

将 JS 对象发送到 JSON.parse 会导致 SyntaxError


@CORY,我在复制代码时漏掉了那一行。我已经添加上去了,但还是没有起作用。 - user1692342
@CORY 这是在服务器端(node.js)进行的,顺便说一下,我正在使用Chrome浏览器。 - user1692342
是的,我刚意识到这个标签是node.js。没有脚本错误或其他问题吗?JSON库已经内置到node中,所以我不明白为什么它不能工作。 - Cᴏʀʏ
1
请注意,response.body 是原始文本响应。而 response.getBody() 应该已经返回了解析后的 JSON 响应。 - Cᴏʀʏ
没错!在你发表评论之前,我刚刚检查过了。感谢你的帮助! - user1692342
@user1692342:我更新了我的答案并删除了不相关的建议。很高兴能帮到你。 - Cᴏʀʏ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接