2010-12-07 4 views
0

Donc, j'ai une chaîne JSON, et j'ai l'intention de l'analyser, et d'alerter le contenu, comme ça.Valeurs supplémentaires lors de l'analyse, puis en boucle dans une chaîne JSON

var json_string = '[1,2,3,4,5]'; 
var parsed_string = JSON.parse(json_string); 
for(x in parsed_string) alert(x) 

Cependant, non seulement je reçois les cinq éléments, je reçois un tas de crud supplémentaire que je n'ai pas demandé ... constructeur $, famille $, ajouter, associé, etc ...

Y at-il un moyen de parcourir ce tableau sans toucher ces valeurs supplémentaires?

Édition: Pour ceux qui se demandent - j'ai réalisé plus tard que parsed_string.length renvoie la longueur de tableau appropriée pour que je puisse itérer.

Répondre

2

for in boucle sur toutes les propriétés d'objet énumérables; ce qui dans le cas d'un tableau en Javascript, est tous les éléments, et toutes les méthodes/attributs que vous avez ajoutés à l'instance du tableau, ou à tout objet de la chaîne du prototype.

C'est la seule et unique raison pour laquelle vous devez utiliser for ;;; pour faire une boucle sur les tableaux.

var json_string = '[1,2,3,4,5]'; 
var parsed_string = JSON.parse(json_string); 
for(var i=0;i<parsed_string.length;i++) alert(parsed_string[i]); 
+0

Hey Matt - merci pour la réponse rapide. J'ai codé en PHP trop longtemps, et je me suis trop à l'aise avec foreach(). :) –

2

Vous devez boucle à travers un objet JavaScript comme ceci:

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
     alert(obj[key]); 
    } 
} 

.hasOWnProperty() assure que la propriété spécifiée par key n'est pas hérité. Cependant, vous avez affaire à un tableau ici:

for (var i = 0; i < arr.length; i++) { 
    alert(arr[i]); 
} 
Questions connexes