Utilisation de Jquery pour obtenir des objets JSON à partir d'un fichier local
Je vais essayer d'obtenir une liste d'objets JSON (produits) à partir d'un fichier local à l'aide de Jquery et de stocker tous les objets dans un seul tableau appelé allItems. Le fichier est situé dans le même répertoire que le code, et il est appelé "allItems.json". Voici comment je le fais maintenant:
function getAllSupportedItems(){
var allItems = new Array();
$.getJSON("allItems.json",
function(data){
$.each(data.items,
function(item){
allItems.push(item);
});
});
return allItems;
}
Basé sur cet exemple: http://api.jquery.com/jQuery.getJSON/
source d'informationauteur ThoughtCrhyme
Vous devez vous connecter pour publier un commentaire.
Pour
getAllSupportedItems
pour être en mesure de retourner les articles, l'appel AJAX a besoin pour fonctionner de manière synchrone.getJSON
se traduit par la suite à un appel asynchrone:Asynchrone est la valeur par défaut. Vous devez donc modifier explicitement votre demande à l'synchrone:
Une alternative consiste à repenser la manière dont vous utilisez
getAllSupportedItems
et d'en faire un asynchrones utilitaire:Mise à jour
Quand j'ai d'abord écrit cette réponse, jQuery n'ont pas intégré en Différé de soutien. Il est beaucoup plus concis et flexible pour faire quelque chose comme ceci aujourd'hui:
Comment utilisez-vous? Si vous attendez de la fonction principale ("getAllSupportedItems") à retour le tableau que vous faites, bien que ne fonctionnera pas. Le
$.getJSON
fonction est asynchroneet afin que le gestionnaire ne sera pas réellement construire la matrice jusqu'à après la fonction externe est de retour.