|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 749 ![]() |
Bonjour,
via Ajax, je récupère et parse un fichier json qui contient des variables, objet, tableau : jusque la pas de problème, j'arrive à utiliser mes variables. Ce que j'aimerais faire c'est une fonction de debug qui m'afficherait dans un div toutes mes variables avec leur structure à partir de la variable contenant les information du fichier json parsé. Y a t-il moyen de faire ça ? je ne vois pas trop comment parcourir mes variables issues du fichier json et afficher leur nom/valeur merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur informatique Inscription : février 2006 Messages : 3 563 ![]() |
En gros il faut faire une fonction récursive pour appeler tous les objets enfants mais les bases seraient ça :
Code :
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) |
||
|
|
00
|
|
|
#3 | ||
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 749 ![]() |
merci pour ton aide mais je n'arrive toujours pas a voir comment afficher ce type de variable :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Développeur informatique Inscription : février 2006 Messages : 3 563 ![]() |
il te faut utiliser l'opérateur typeof qui te renvois une string t'indiquant le type de la variable :
dans la boucle , tu tests chacun des éléments , si c'est une variable simple tu l'affiches , si c'est un tableau ou un objet tu rappels la fonction récursivement
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 749 ![]() |
ok, merci
ou puis-je trouver la liste des valeurs que peut me renvoyer la fonction typeof ? typeof renvoie bien une variable de type string ? la valeur retourné ne dépend pas du webbrowser utilisé au moins ? |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Développeur informatique Inscription : février 2006 Messages : 3 563 ![]() |
Les valeurs renvoyées possibles sont:
boolean (variable OUI/NON), string (variable de chaîne de caractères), number (variable numérique), function (fonction), object (objet), undefined (type indéterminé). sur tous les browser
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) |
|
|
00
|
|
|
#7 | ||
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 749 ![]() |
ok merci beaucoup
j'ai commencé à faire ma fonction de debug (j'utilise jquery) : Code :
- comment faire pour qu'il n'y ai pas de sous nœud créé pour les variables => que le nom de la variable soit sur la même ligne que sa valeur ? - et qu'il n'y ai pas l'index des tableau qui soit affiché (mettre directement les valeurs sous forme de liste) |
||
|
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 749 ![]() |
j'ai trouvé un système qui à l'air d'assez bien fonctionner (ça fait le même affichage que sous firebug) :
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 840 ![]() |
En javascript les objets ne sont que des références vers un objet. Donc un objet peut facilement se contenir lui-même. Un parcours de cette objet mènerait donc à une boucle infinie. ;-)
|
|
|
00
|
|
|
#10 | |||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 840 ![]() |
Citation:
Code js :
La beauté de la recursivité, c'est que cela n'empechera pas un meme objet d'être traité/affiché plusieurs fois dans une boucle ou dans des sous-objets différents, cela empêchera uniquement l'appel à la fonction sur l'objet s'il est contenu dans lui-meme ou un objet parent appartenant à lui-même. Autrement dit, cela bloque uniquement le cas de parcours infini. Exemple simple d'objet se contenant lui-meme : Code js :
var jsonObj = new (function(){this.myObj = {owner : this }; })(); Édit: ou un exemple qui te sera peut-être plus parlant d'objet se contenant lui-même : Code js :
NB: je n'ai ni testé mes 3 lignes de code ni mes exemples car je suis sur gsm. S'il y a des erreurs, merci de me corriger . |
|||||
|
|
00
|
|
|
#11 | ||||
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 417 ![]() |
un paquet JSON ne doit pas contenir de référence
si en javascript je peux faire un paquet jSON est invalide la référence est interdite par JSON voici ce que donne Fire bug Code :
Code :
A+JYT |
||||
|
|
00
|
|
|
#12 | |||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 840 ![]() |
Citation:
|
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com