Comment afficher JSON dans un format facile à lire (pour les lecteurs humains)? Je recherche principalement l'indentation et les espaces blancs, avec peut-être même des couleurs / styles de police / etc.
javascript
json
pretty-print
marque
la source
la source
<pre>
balise.Réponses:
Pretty-printing est implémenté en natif dans
JSON.stringify()
. Le troisième argument permet une jolie impression et définit l'espacement à utiliser:Si vous avez besoin de mettre en évidence la syntaxe, vous pouvez utiliser une magie regex comme ceci:
Voir en action ici: jsfiddle
Ou un extrait complet fourni ci-dessous:
Afficher l'extrait de code
la source
<pre>
, cependant.#transactionResponse
élément awhite-space: pre;
un style CSS.stringify(...)
fonctionne sur les objets JSON , pas sur les chaînes JSON. Si vous avez une chaîne, vous devez d'JSON.parse(...)
abordLa réponse de l'utilisateur Pumbaa80 est excellente si vous avez un objet que vous souhaitez assez imprimé. Si vous commencez à partir d'une chaîne JSON valide que vous souhaitez imprimer, vous devez d'abord la convertir en objet:
Cela crée un objet JSON à partir de la chaîne, puis le reconvertit en une chaîne à l'aide de la jolie impression de JSON stringify.
la source
JSON.parse
donc je l'ai modifié pour êtreJSON.stringify(jsonString, null, 2)
. Dépend de votre JSON / objet.<pre></pre>
balises.JSON.parse
ne meurt que si vous avez une chaîne JSON invalide ou si elle est déjà convertie en objet ... assurez-vous de savoir de quel type de données vous traitez avant d'essayer deJSON.parse
Meilleure façon.
Prettify JSON Array en Javascript
la source
Sur la base de la réponse de Pumbaa80, j'ai modifié le code pour utiliser les couleurs console.log (fonctionnant sur Chrome à coup sûr) et non HTML. La sortie peut être vue à l'intérieur de la console. Vous pouvez modifier les _variables à l'intérieur de la fonction en ajoutant un peu plus de style.
Voici un bookmarklet que vous pouvez utiliser:
Usage:
Edit: J'ai juste essayé d'échapper au symbole% avec cette ligne, après la déclaration des variables:
Mais je découvre que Chrome ne prend pas en charge% d'échappement dans la console. Étrange ... Peut-être que cela fonctionnera à l'avenir.
À votre santé!
la source
En cas d'affichage en HTML, vous devez ajouter une balise
<pre></pre>
Exemple:
Afficher l'extrait de code
la source
<pre>
est un must si vous affichez le JSON dans un fichier<div>
. A voté juste pour cet indice!J'utilise l' extension JSONView Chrome (c'est aussi joli que possible :):
Modifier: ajouté
jsonreport.js
J'ai également publié une jolie visionneuse d'impression JSON autonome en ligne, jsonreport.js, qui fournit un rapport HTML5 lisible par l'homme que vous pouvez utiliser pour afficher toutes les données JSON.
Vous pouvez en savoir plus sur le format dans Nouveau format de rapport HTML5 JavaScript .
la source
Vous pouvez utiliser
console.dir()
, qui est un raccourci pourconsole.log(util.inspect())
. (La seule différence est qu'il contourne touteinspect()
fonction personnalisée définie sur un objet.)Il utilise la coloration syntaxique , l' indentation intelligente , supprime les guillemets des clés et rend la sortie aussi jolie que possible.
et pour la ligne de commande:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
la source
Voici l'impressionnant code HTML de user123444555621 adapté aux terminaux. Pratique pour déboguer les scripts Node:
Usage:
la source
À des fins de débogage, j'utilise:
la source
console.debug(data);
dans (au moins) Chrome et Firefox. Il ne montre pas une représentation JSONdata
, et encore moins une jolie impression.console.debug("%s: %o x %d", str, data, cnt);
peut également être utile à quelqu'un.console.dir
ce qui permet de naviguer dans les données.Insatisfait des autres jolies imprimantes pour Ruby, j'ai écrit le mien ( NeatJSON ), puis je l'ai porté en JavaScript, y compris un formateur en ligne gratuit . Le code est gratuit sous licence MIT (assez permissif).
Caractéristiques (toutes facultatives):
Je vais copier le code source ici afin que ce ne soit pas seulement un lien vers une bibliothèque, mais je vous encourage à aller sur la page du projet GitHub , car cela sera maintenu à jour et le code ci-dessous ne le sera pas.
la source
Merci beaucoup @all! Sur la base des réponses précédentes, voici une autre variante de méthode fournissant des règles de remplacement personnalisées en paramètre:
la source
Ça marche bien:
En savoir plus ici: https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
la source
La bibliothèque JSON de JavaScript de Douglas Crockford imprimera assez JSON via la méthode stringify.
Vous pouvez également trouver les réponses à cette question plus ancienne utiles: Comment puis-je imprimer JSON dans un script shell (unix)?
la source
J'ai rencontré un problème aujourd'hui avec le code de @ Pumbaa80. J'essaie d'appliquer la coloration syntaxique JSON aux données que je rend dans une vue Mithril , j'ai donc besoin de créer des nœuds DOM pour tout dans la
JSON.stringify
sortie.J'ai également divisé la regex très longue en ses composants.
Code en contexte sur Github ici
la source
Voici un simple composant format / couleur JSON écrit en React:
Voyez-le fonctionner dans ce CodePen: https://codepen.io/benshope/pen/BxVpjo
J'espère que cela pourra aider!
la source
Vous pouvez utiliser
JSON.stringify(your object, null, 2)
Le deuxième paramètre peut être utilisé comme une fonction de remplacement qui prend la clé et Val comme paramètres. Cela peut être utilisé dans le cas où vous souhaitez modifier quelque chose dans votre objet JSON.référence supplémentaire: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
la source
Si vous en avez besoin pour travailler dans une zone de texte, la solution acceptée ne fonctionnera pas.
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
la source
Si vous cherchez une belle bibliothèque pour embellir json sur une page web ...
Prism.js est assez bon.
http://prismjs.com/
J'ai trouvé que l'utilisation de JSON.stringify (obj, undefined, 2) pour obtenir l'indentation, puis l'utilisation de prisme pour ajouter un thème était une bonne approche.
Si vous chargez dans JSON via un appel ajax, vous pouvez exécuter l'une des méthodes utilitaires de Prism pour affiner
Par exemple:
la source
C'est sympa:
https://github.com/mafintosh/json-markup depuis
mafintosh
HTML
Un exemple de feuille de style peut être trouvé ici
la source
Impossible de trouver une solution qui avait une bonne mise en évidence de la syntaxe pour la console, alors voici mon 2p
Installer et ajouter une dépendance cli-highlight
Définir logjson globalement
Utilisation
la source
Voici comment imprimer sans utiliser la fonction native.
la source
La façon la plus simple d'afficher un objet à des fins de débogage:
Si vous souhaitez afficher l'objet dans le DOM, vous devez considérer qu'il pourrait contenir des chaînes qui seraient interprétées comme HTML. Par conséquent, vous devez vous échapper ...
la source
la source
Pour le mettre en valeur et l'embellir en
HTML
utilisantBootstrap
:la source
Je recommande d'utiliser HighlightJS . Il utilise le même principe que la réponse acceptée, mais fonctionne également pour de nombreuses autres langues et possède de nombreux schémas de couleurs prédéfinis . Si vous utilisez RequireJS , vous pouvez générer un module compatible avec
La génération repose sur Python3 et Java. Ajoutez
-n
pour générer une version non réduite.la source