Get a JSON via HTTP request in NodeJS
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);
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);});
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);});