Get a JSON via HTTP request in NodeJS
Solution 1:
http sends/receives data as strings... this is just the way things are. You are looking to parse the string as json.
var jsonObject = JSON.parse(data);
How to parse JSON using Node.js?
Solution 2:
Just tell request that you are using json:true and forget about header and parse
var options = {
hostname: '127.0.0.1',
port: app.get('port'),
path: '/users',
method: 'GET',
json:true
}
request(options, function(error, response, body){
if(error) console.log(error);
else console.log(body);
});
and the same for post
var options = {
hostname: '127.0.0.1',
port: app.get('port'),
path: '/users',
method: 'POST',
json: {"name":"John", "lastname":"Doe"}
}
request(options, function(error, response, body){
if(error) console.log(error);
else console.log(body);
});
Solution 3:
Just setting json
option to true
, the body will contain the parsed JSON:
request({
url: 'http://...',
json: true
}, function(error, response, body) {
console.log(body);
});