Je récupère des données json à partir d'un flux RSS via YQL
. Lorsqu'il y a plusieurs éléments dans le tableau des résultats, tout fonctionne comme prévu.Confusion de UnEtype TypeError: Impossible de lire la propriété 'n' de indéfini qui ne se produit que lorsque le résultat JSON a un seul élément, pourquoi?
Quand il n'y a qu'un seul élément dans le tableau des résultats, cependant, je reçois l'erreur suivante:
Uncaught TypeError: Cannot read property 'content' of undefined
Ceci est le bit de code correspondant lorsque la variable est définie à partir du résultat JSON. La propriété « content » référencé dans l'erreur est de la isbn variable $ où je suis preneuse le guid.content
pour chaque élément dans les résultats:
if (data.query.count > 0) {
$.each(data.query.results.item, function(i, book) {
var $title = book.title;
var $url = book.link;
var $description = book.description;
var $isbn = book.guid.content.split(' ', 1);
Voici les données JSON qui est retourné pour le flux rss que n'a qu'un seul résultat JSON Data:
{
query: {
count: 1,
created: "2015-10-01T08:31:51Z",
lang: "en-US",
results: {
item: {
title: "Hi-5. Sharing stories [videorecording] : Spin me round.",
link: "http://webpac.sutherlandshire.nsw.gov.au/record=b1252345*eng",
description: "The big story book is open and Hi-5 are sharing all their story fun with you!",
guid: {
isPermaLink: "false",
content: "9398711204390"
}
}
}
}
}
Cependant, le même code fonctionne parfaitement bien quand je demande les données JSON à partir d'un flux rss avec plusieurs éléments. Il n'y a pas d'erreur et la variable $ isbn est définie et utilisée.
J'ai mis en place un codepen qui montre ce comportement à Test Case for AJAX fail
J'ai compris ce que l'erreur fait référence, mais je ne comprends pas pourquoi il ne se produit quand il y a un seul élément dans les données JSON .
Des suggestions?
Merci @Magnus. Cela a fait l'affaire. J'ai raté la différence de notation de tableau dans deux résultats de jason. J'ai dû réorganiser mon code mais je l'ai fonctionné maintenant à [link] (http://codepen.io/boycetrus/pen/gambeB?editors=001) –