Javascript 如何访问HTTPS响应中返回的数据

Javascript 如何访问HTTPS响应中返回的数据,javascript,node.js,ajax,rest,https,Javascript,Node.js,Ajax,Rest,Https,我试图通过node.js学习如何使用API。我正在使用星球大战API来学习。使用此代码时,我能够得到回复: const https = require('https'); https.get('https://swapi.co/api/people/1/', (res) => { res.setEncoding('utf8'); res.on('data', function (body) { console.log(body); }); });

我试图通过node.js学习如何使用API。我正在使用星球大战API来学习。使用此代码时,我能够得到回复:

const https = require('https');
https.get('https://swapi.co/api/people/1/', (res) => {
    res.setEncoding('utf8');
    res.on('data', function (body) {
        console.log(body);
    });
});
看起来是这样的:

`{"name":"Luke Skywalker","height":"172","mass":"77","hair_color":"blond","skin_color":"fair","eye_color":"blue","birth_year":"19BBY","gender":"male","homeworld":"https://swapi.co/api/planets/1/","films":["https://swapi.co/api/films/2/","https://swapi.co/api/films/6/","https://swapi.co/api/films/3/","https://swapi.co/api/films/1/","https://swapi.co/api/films/7/"],"species":["https://swapi.co/api/species/1/"],"vehicles":["https://swapi.co/api/vehicles/14/","https://swapi.co/api/vehicles/30/"],"starships":["https://swapi.co/api/starships/12/","https://swapi.co/api/starships/22/"],"created":"2014-12-09T13:50:51.644000Z","edited":"2014-12-20T21:17:56.891000Z","url":"https://swapi.co/api/people/1/"}`
我希望能够执行类似于
console.log(body.name)
的操作,并让它打印出“Luke Skywalker”,但它会打印出“undefined”。我如何访问返回给我的数据


对不起,如果这是一个重复的问题,它似乎是那种将。我发现很多问题都很接近我的问题,但都没有完全回答。我也经历过,但更多的是关于如何提出请求,而不是如何处理。至少从我从中得到的

您必须
JSON。首先将字符串解析为对象

const https = require('https');
https.get('https://swapi.co/api/people/1/', (res) => {
  res.setEncoding('utf8');
  res.on('data', function(body) {
    const obj = JSON.parse(body);
    console.log(obj.name);
  });
});

你是个圣人!我想我是用口袋妖怪API试过的。我刚刚尝试了完全相同的代码,但是使用了url \“”,但是得到了
SyntaxError:JSON输入的意外结束
,我之前一时兴起切换到starwars API。这是否意味着问题已经到了尽头?url显示不正确,因为堆栈正在自动嵌入它,但它确实具有正确的https://头,并且它确实正确连接并返回数据,只是当我尝试使用JSON解析它时出错。parse()对我有效:可能是语法错误(可能删除“setEncoding”)
consthttps=require('https');https.get('https://pokeapi.co/api/v2/pokemon/8/“,(res)=>{res.on('data',function(body){const obj=JSON.parse(body);console.log(obj.name);});})
在IncomingMessage的JSON.parse()处给出错误SyntaxError:JSON输入意外结束。(/Users/davidsullivan/Desktop/programming/JavaScript/Node/api test/api caller.js:5:24)IncomingMessage.emit(events.js:116:13)IncomingMessage.emit(events.js:211:7)IncomingMessage。。。。。。。。(切为字符限制)