0

Here is my code.

var request = require('request');
var API = "https://api.stackexchange.com/2.2/users?page=1&order=desc&sort=reputation&site=stackoverflow";

request(API, function(e//console.dir(body);
if( err || response.statusCode != 200 ) {
    console.log("Error",err); return;
}

var stringify = JSON.stringify(body);
var obj = JSON.parse(stringify);

var items = obj.items;
for (var i in items) {
   var item = items[i];
   var display_name = item.display_name;
   console.log("display_name", display_name);
}

});

node stack.js

I would like to get display_name from json(https://api.stackexchange.com/2.2/users?page=1&order=desc&sort=reputation&site=stackoverflow). However, nothing happens(var items gets "undefined"). What should I do to fix it?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
  • Try removing the JSON.stringify – cmd430 Mar 16 '16 at 22:02
  • Thank you for answering my question. However, I already tried what you said then got an error. In addition, I searched the similar case I got and I add JSON.stringify. Unfortunately, it hasn't worked well. Anyway, thanks! – user4473065 Mar 16 '16 at 23:13

1 Answers1

1

You're using a for in loop when you should just be using a regular for loop. for in is for iterating over the properties of an object - where you want to iterate over the elements of an array:

for (var i = 0; i < items.length; i++) {
    var item = items[i];
    var display_name = item.display_name;
    console.log("display_name", display_name);
}
tymeJV
  • 103,943
  • 14
  • 161
  • 157