Javascript Node.js请求模块未在正文中返回JSON
已解决:需要在request.get选项中设置编码:“utf8”。 我试图用请求模块加载一个JSON文件,但遇到了一个问题。代码如下:Javascript Node.js请求模块未在正文中返回JSON,javascript,json,node.js,Javascript,Json,Node.js,已解决:需要在request.get选项中设置编码:“utf8”。 我试图用请求模块加载一个JSON文件,但遇到了一个问题。代码如下: request.get({url: url_obj.url, json: true}, function(error, response, body) { if (error) { cb(error); } else { console.log(body.constructor); server_o
request.get({url: url_obj.url, json: true}, function(error, response, body) {
if (error) {
cb(error);
} else {
console.log(body.constructor);
server_obj[url_obj.server] = body;
cb(null, server_obj);
}
});
“body”作为字符串返回,尽管我指定它应该是json。很奇怪。如果我尝试JSON.parse(body),它会返回“意外标记”。JSLint告诉我,我的JSON是100%有效的
这里是json。它被编辑了一点(只是字符串位被更改以保留一些私有数据)
您请求的URL显然没有发送回有效的JSON。嘿,感谢您的快速响应。我已经通过另外两个验证器运行了JSON,但没有任何东西告诉我它是无效的。对不起,我误读了这个问题,认为它是无效的。我们能否准确地看到响应是什么,以及意外的标记是什么?您的响应似乎比您预期的要多。什么是
console.log(response.headers['content-type'])
show?console.log(response.headers['content-type']显示应用程序/json
{
"build_info": {
"build_version": "v2.0.2.1",
"project_name": "platformsc",
"jenkins_build_url": "http://build03:8080/job/platformsc/1524/",
"git_commit_message": "the last commit.",
"git_commit_id": "c1b5dde6033977a8d183c7740ddad0f1f1589ce2",
"git_repo": "git@gitlab.blahblahblah.lan:secrets/",
"git_commit_user": "a developer",
"git_branch": "name of branch"
}
}