Javascript 从nodejs的https请求访问json响应数据的问题
我使用NodeJS的本地HTTPS模块编写了一个HTTPS函数,以从API获取一些JSON 当我执行GET请求时,我得到的是JSON,但当我必须发出PUT请求时,我得到的是JSON,但我无法将其转换为对象 GET的答复:Javascript 从nodejs的https请求访问json响应数据的问题,javascript,node.js,json,Javascript,Node.js,Json,我使用NodeJS的本地HTTPS模块编写了一个HTTPS函数,以从API获取一些JSON 当我执行GET请求时,我得到的是JSON,但当我必须发出PUT请求时,我得到的是JSON,但我无法将其转换为对象 GET的答复: { items: [ { dsname: 'A09999' }, { dsname: 'A09999.ALLFILES.TEMP' }, ], returnedRows: 16, JSONversion: 1 } 主席的答覆: { 'cmd
{
items: [
{ dsname: 'A09999' },
{ dsname: 'A09999.ALLFILES.TEMP' },
],
returnedRows: 16,
JSONversion: 1
}
主席的答覆:
{
'cmd-response-key': 'C8124546',
'cmd-response-url':'https://myhost/zosmf/restconsoles/consoles/ibmusecn/solmsgs/C8124546',
'cmd-response-uri': '/zosmf/restconsoles/consoles/ibmusecn/solmsgs/C8124546',
'cmd-response':
' IEE457I 16.32.55 UNIT STATUS 464\r UNIT TYPE STATUS VOLSER' }
我的代码:
const makeRequest = options =>
new Promise(function(resolve, reject) {
let results = https.request(options, res => {
res.setEncoding('utf8');
let body = '';
res.on('data', data => {
body += data;
});
res.on('end', () => {
body = JSON.parse(body);
console.log('body :', body);
resolve(body);
});
});
if (options.body) {
// results.write(options.body);
results.write(JSON.stringify(options.body),['Transfer-Encoding', 'chunked']);
}
results.on('error', e => {
reject(e);
});
results.end();
});
那么,您从文章中得到的不是一个有效的json对象。就在这里:
'cmd-response':
' IEE457I 16.32.55 UNIT STATUS 464\r UNIT TYPE STATUS VOLSER'' }
请注意,在结尾处,VOLSER后面跟着to“”。这将结束以值开头的字符串,并打开一个新字符串。这是无效的JSON
此外,我建议使用axios之类的库或npm的请求。写得好,使用广泛,没有直接使用https模块那么低级。第二个“是错误粘贴的,我没有得到答案,无论如何,它没有像预期的那样出现:(顺便说一句,我刚刚试过AXIOS,我得到了相同格式的答案……我会向负责维护该api的人报告,因为我可以认为这可能是api方面的一个问题,没有正确处理答案,这两个都不是有效的JSON。但也许你正在展示已经解析的JSON?我说不出来。