Utilisation de l'alimentation suivante: p>
Je suis capable de boucler avec succès pour obtenir les détails que je souhaite afficher sur ma page HTML. P>
Cependant, je dois vérifier si actuellement, je suis en boucle via les données où si resweeted_status.user.profile_image_url code> existe, et je ne sais pas comment faire ça? P>
données code> est renvoyé par jQuery-ajax: p>
data [i] .retweeted_status.user.profile_image_url code> p>
data [i] .retweeted_status.user.profile_image_url code> n'existe pas, il ne renvoie pas NULL ou non défini, je viens d'obtenir l'erreur suivante: P>
ne peut pas lire la propriété 'utilisateur' de indéfini code> p>
6 Réponses :
Ce message d'erreur suggère que vos données [i] ou votre resweeted_status sont indéfinies, ce qui signifie que votre appel à obtenir le JSON a probablement échoué. Lorsque les données sont renvoyées de Twitter, il sera éliminé une URL de l'image de profil, car elles montrent une image semblable à des œufs pour ceux qui n'ont aucun téléchargé. Vous devez la mettre avant votre boucle:
if (typeof(retweeted_status) != "undefined") { //code for what to do with json here }
Si le tweet est un retweet, Je veux obtenir le REtweeted_status.user.profile_image_url, pas le user.profile_image_url. Ils sont 2 éléments différents. S'il vous plaît examiner le lien JSON I posté ci-dessus.
Si vous bouclez et accédez à des objets de nidification: Cette boucle n'a plus besoin d'utiliser des index de tableau, ce qui n'est pas le plus efficace que si vous avez spécifiquement besoin de l'index de quelque chose. Au lieu de cela, il apparaît le premier élément de la matrice et utilise directement cet objet. Les internes en boucle peuvent ensuite vérifier l'existence d'une propriété sur J'essaie d'éviter d'utiliser plus de 1 niveau de déséroférance pour 2 raisons (comme tweet_data code>. P>
obja.child .property code>):
1) Vous pouvez vérifier l'existence d'un objet à partir du début et si cela n'existe pas, sortez ou attribuez des valeurs par défaut.
2) Chaque fois que JavaScript a besoin d'accéder à la méthode
Propriété code>, il doit d'abord trouver
enfant code> avec
obja code>, puis accéder à
propriété code >. Pourrait être lent dans de grandes boucles. P> p>
Jetez un coup d'œil à $ .grep () . Cela vous aide à boucler les objets JSON. Je l'ai utilisé sur le lien que vous avez fourni. Je l'ai utilisé pour boucler les tweets et trouver les images utilisateur retweeté. Vous pouvez regarder mon code ici: http://jsfiddle.net/q5squ/7/ p>
Une autre chose que vous pouvez faire, ce qui a fonctionné pour moi:
Je pense que c'est une bonne réponse:
J'aime mieux cette réponse d'une perspective JSON puisque la clé pourrait être dans l'objet avec une valeur non définie.
if (typeof something != "undefined") { ... }
C'est une réponse approfondie, mais envisagez de mettre la meilleure option d'abord, le deuxième meilleur second, et expliquez pourquoi.
Si (données [i] .retweeted_status && data [i] .retweeted_status.user && data [i] .retweeted_status.user.profile_image_url)
@Abhijit, veuillez ajouter ceci comme une réponse.