2017-08-29 1 views
-1

Je tente d'obtenir des données de JSON, ceci est ma fonctionportée variable JavaScript instruction if

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))); 
} 

La variable délivre les données attendues dans l'instruction if mais n'est pas défini à côté de celui-ci. Je suppose que cela a quelque chose à voir avec la portée, mais je n'ai jamais rencontré le problème auparavant. Je suis un vrai noob à ceci donc j'espère que ce n'est pas une question stupide ..:/J'ai jeté un bon coup d'oeil à d'autres questions mais je n'arrive pas à trouver une réponse.

+10

Dans la "vraie" partie de la '' if' vous définissez object.media.url', alors que dans la partie "false" vous définissez 'objet. media'. – Pointy

+0

Yeh désolé si je n'étais pas clair, je sais que – user1756180

Répondre

1

vous pouvez écrire et si ELSE dans une seule ligne. Essayez d'écrire votre code très propre. Le code ci-dessous devrait fonctionner

object.media.url = (data.entities.media != undefined) ? data.entities.media[0].media_url : 'images/1500x500.jpeg';

+0

Ahh génial merci. Je ne sais toujours pas pourquoi cela fonctionne:/ – user1756180

+0

Oups, maintenant je comprends. – user1756180

2

lorsque data.entities.media est vous affectez object.media à l'URL de l'image.

object.media = 'images/1500x500.jpeg'

dans ce cas object.media.url sera non définie

+0

Yeh désolé si je n'étais pas clair, je sais que – user1756180