Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 11h21   #1
Futur Membre du Club
 
Inscription : janvier 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 76
Points : 19
Points : 19
Par défaut json parcours des valeurs

Bonjour,

voici mon code :
Code :
1
2
3
4
5
6
 
                var reponse=eval('('+ xhr.responseText +')');
                for(var cle in reponse)
                {
                    var v=reponse[cle];
               }
Tout va bien, je vois bien tout, sauf à la fin, il me ramène une clé appelée toJSONString
Pourquoi ?
merci pour les réponses
loustalet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 14h53   #2
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Salut,

tout dépend du type de données que tu souhaites recevoir. Je suppose que c'est JSON…

Évite eval autant que possible. Surtout avec AJAX. Imagine si un attaquant arrive à prendre la place de ton serveur, il peut envoyer n'importe quel code sur les navigateurs des visiteurs de ton site, et c'est la cata. C'est bien connu : eval is evil!

De plus, la présence d'une propriété toJSONString me fait penser que tu utilises la bibliothèque json.js de Douglas Crockford. Comme il l'indique lui-même sur le README de sa page de projet, il vaut mieux utiliser json2.js qui ne rajoute rien sur le prototype de Object.

Si tu ne peux pas changer de lib, il te faut utiliser hasOwnProperty dans le corps de ta boucle :
Code :
1
2
3
4
5
6
var v;
for (var cle in reponse) {
   if (reponse.hasOwnProperty(cle)) {
      v = reponse[cle];
   }
}
Note que sous un navigateur assez récent, l'objet JSON est fourni nativement, et la lib de Crockford ne fait rien. Si tu as ce problème, pose-toi la question : est-ce que le navigateur avec lequel tu testes ton site est vraiment adapté ?…
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 15h42   #3
Futur Membre du Club
 
Inscription : janvier 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 76
Points : 19
Points : 19
Merci pour la réponse, j'utilise les derniers navigateurs (mozilla et chrom. pas de IE.
Je vais voir pour les navigateurs, effectivement j'aimerais autant ne pas importer de bibliothèques.
As-tu un lien sur json en natif
Merci
loustalet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 17h18   #4
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Ouaip : https://developer.mozilla.org/en/JSON
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 23h05   #5
Futur Membre du Club
 
Inscription : janvier 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 76
Points : 19
Points : 19
merci, je vais tester. Bonne soirée
loustalet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h32.


 
 
 
 
Partenaires

Hébergement Web