我正在尝试从JSON获取一些数据,这是我的功能
var process_data = function(data) {
var object = {};
object.date = data.created_at;
object.text = data.text;
object.name = data.user.name;
object.screen_name = data.user.screen_name;
object.imgURL = data.user.profile_image_url;
object.media = {};
if (data.entities.media != undefined) {
object.media.url = data.entities.media[0].media_url;
// CONSOLE LOG WORKS HERE
//console.log(object.media.url);
} else {
object.media = 'images/1500x500.jpeg'
}
// CONSOLE LOG HERE IS UNDEFINED
console.log(object.media.url);
connection.sendUTF(JSON.stringify(object));
//console.log('obj is ' + (JSON.stringify(object)));
}
该变量在if语句中输出预期的数据,但在其外侧未定义。我猜它与范围有关但我以前从未遇到过这个问题。我是一个真正的菜鸟,所以我希望这不是一个愚蠢的问题..:/我已经好好看看其他问题,但我似乎无法找到答案。
答案 0 :(得分:2)
data.entities.media
为undefined
时您正在将object.media分配给图像网址。
object.media = 'images/1500x500.jpeg'
在这种情况下,object.media.url
将未定义
答案 1 :(得分:1)
您可以在一行中编写if和else语句。尝试编写非常干净的代码。以下代码应该可以使用
object.media.url = (data.entities.media != undefined) ? data.entities.media[0].media_url : 'images/1500x500.jpeg';