J'ai un objet javascript qui a été analysé en JSON en utilisant JSON.parse
Je veux maintenant imprimer l'objet afin de pouvoir le déboguer (quelque chose ne va pas avec la fonction). Quand je fais ce qui suit ...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Je reçois plusieurs [Object Object] répertoriés. Je me demande comment est-ce que j'imprimerais ceci pour voir le contenu?
javascript
json
parsing
printing
Skizit
la source
la source
Réponses:
La plupart des consoles de débogage prennent en charge l'affichage direct des objets. Utilisez simplement
Selon votre débogueur, cela affichera très probablement l'objet dans la console sous la forme d'une arborescence réduite. Vous pouvez ouvrir l'arborescence et inspecter l'objet.
la source
console.log("object: " + obj)
ci : il n'affiche pas l'objet, mais affiche à la place "object: [Object obj]".console.log("object: %O", obj)
(Chrome) ouconsole.log("object: %o", obj)
(Firefox | Safari) vous donnera accès aux détails de l'objet, voir ma réponse ci-dessous.console.log("My object: ", obj)
Vous savez ce que signifie JSON? Notation d'objet JavaScript . Cela fait un assez bon format pour les objets.
JSON.stringify(obj)
vous donnera une représentation sous forme de chaîne de l'objet.la source
essayez
console.dir()
au lieu deconsole.log()
MDN dit
console.dir()
est soutenu par:la source
console.dir()
est également disponible dans FF8 +, Opera, Chrome et Safari: developer.mozilla.org/en-US/docs/Web/API/console.dirSi vous voulez un joli JSON multiligne avec indentation, vous pouvez utiliser
JSON.stringify
avec son 3ème argument:Par exemple:
ou
vous donnera le résultat suivant:
Dans un navigateur, le travail
console.log(obj)
est encore meilleur, mais pas dans une console shell (node.js).la source
pour imprimer un objet analysé JSON, tapez simplement
console.log( JSON.stringify(data, null, " ") );
et vous obtiendrez une sortie très claire
la source
Utilisez des formats de chaîne;
Chrome a des spécificateurs de format avec les éléments suivants;
%s
Formate la valeur sous forme de chaîne.%d
ou%i
Formate la valeur sous forme d'entier.%f
Formate la valeur sous forme de valeur à virgule flottante.%o
Formate la valeur comme un élément DOM extensible (comme dans le panneau Eléments).%O
Formate la valeur en tant qu'objet JavaScript extensible.%c
Formate la chaîne de sortie en fonction des styles CSS que vous fournissez.Firefox a également des sous-positions de chaînes qui ont des options similaires.
%o
Génère un lien hypertexte vers un objet JavaScript. Cliquer sur le lien ouvre un inspecteur.%d
ou%i
Produit un entier. Le formatage n'est pas encore pris en charge.%s
Génère une chaîne.%f
Génère une valeur à virgule flottante. Le formatage n'est pas encore pris en charge.Safari dispose de formateurs de style printf
%d
ou%i
Entier%[0.N]f
Valeur en virgule flottante avec N chiffres de précision%o
Objet%s
Chaînela source
Agréable et simple:
la source
Utilisez simplement
et vous obtiendrez ceci dans la console chrome:
la source
Fonction simple pour alerter le contenu d'un objet ou d'un tableau.
Appelez cette fonction avec un tableau ou une chaîne ou un objet dont elle alerte le contenu.
Fonction
Usage
la source
Le code suivant affichera les données json complètes dans la boîte d'alerte
la source
Si vous voulez déboguer, pourquoi ne pas utiliser le débogage de la console
la source
Si vous travaillez en js sur un serveur, juste un peu plus de gymnastique va un long chemin ... Voici mon ppos (pretty-print-on-server):
ce qui permet de créer quelque chose que je peux réellement lire lorsque j'écris du code serveur.
la source
Je ne sais pas comment cela n'a jamais été fait officiellement, mais j'ai ajouté ma propre
json
méthode pourconsole
m'opposer à l'impression plus facile des journaux stringifiés:Plusieurs fois, il est nécessaire d'afficher une version chaîne d'un objet car l'impression en l'état (objet brut) imprimera une version "en direct" de l'objet qui subit une mutation à mesure que le programme progresse et ne reflétera pas l'état de l'objet au point de connexion, par exemple:
la source