web-dev-qa-db-fra.com

Bien nécessaire: visionneuse de journaux JSON bien mise en évidence

En utilisant winston pour la journalisation node.js, j’obtiens des fichiers journaux JSON. Un fichier journal dans cette veine est simplement une séquence d'objets JSON (délimités par une nouvelle ligne). C'est parfait pour interroger les journaux et les traiter comme des données de première classe!

Cependant, Sublime et gedit (du moins les versions que j'utilise sous Ubuntu, sublime 2 et gedit 3.6.2), mettent en évidence json - ils utilisent la même couleur pour les clés et les valeurs, ce qui rend le forage de journaux assez pénible et vraiment impossible de passer d'une manière humaine à distance.

Le chrome extensions existant pour la mise en surbrillance de json n'est pas utile ici non plus - ils ne peuvent pas gérer une collection d'objets json et échouent donc à l'affichage de ces fichiers journaux sauf si je les transforme manuellement en tableau dans un objet parent synthétique (ce qui les convertit en json objet). Cela est fastidieux dans le cas de la visualisation d’un fichier journal en cours d’écriture et en général ......

Existe-t-il un outil qui puisse à la fois avaler les fichiers journaux JSON en l'état et mettre en même temps les clés en surbrillance dans une couleur différente de celle des valeurs, de sorte que les journaux JSON conviennent également à l'homme, pas seulement à la machine? C'est une vraie douleur.

Merci!

22
matanster

Découvrez le Neon Color Scheme , disponible via Package Control et Github pour Sublime Text. Les clés et les valeurs sont mises en surbrillance dans différentes couleurs, et il existe différentes couleurs de clé pour différents niveaux. 

JSON with Neon

Divulgation complète: je suis responsable de ce projet, mais je pense vraiment que cela vous aidera - cela m'aide certainement lorsque je travaille avec des fichiers JSON à plusieurs niveaux, comme celui présenté ci-dessus.

27
MattDMo

Si vous aimez le thème par défaut de Monkai, jetez un œil à MonokaiJSON + Theme! Il prend en charge les chaînes, les dictionnaires, les tableaux, etc.

https://github.com/ColibriApps/MonokaiJsonPlus

Monokai JSON+ Theme

24
Ben Marten

J'ai modifié le thème Twilight original pour ajouter des règles pour un JSON plus joli. C'est une version modifiée de la réponse de @MattDMo et elle a les mêmes couleurs de clé différentes pour différents niveaux. Vous pouvez l'obtenir ici

https://github.com/shaunakv1/twilight-tmTheme-better-json-highlight

Voici à quoi ressemble JSON:

enter image description here

5
Shaunak

En mélangeant les réponses de (Allen Bargui } _ et de MattDMo , vous pouvez modifier la couleur des clés/valeurs imbriquées en ajoutant simplement plus de dict en spécifiant la profondeur du code en ajoutant un meta après le source.json Mot.

Localisez le fichier de thème en accédant à Préférences> Parcourir les packages, puis dans le dossier Color Scheme - Default. Modifiez-le en ajoutant ces lignes: 

<dict>
    <key>name</key>
    <string>Json Keys - 1 deep</string>
    <key>scope</key>
    <string>source.json meta meta.structure.dictionary.json string.quoted.double.json</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string> <!-- your keys color -->
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>JSON Values - 1 deep</string>
    <key>scope</key>
    <string>source.json meta meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#00FF00</string> <!-- your custom color -->
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Json Keys</string>
    <key>scope</key>
    <string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string> <!-- your keys color -->
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>JSON Values</string>
    <key>scope</key>
    <string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#00FF00</string> <!-- your custom color -->
    </dict>
</dict>

Il est important de ajouter les plus profondes AVANT le reste, car Sublime sélectionnera la première occurrence correspondante. J'ai supposé que l'ajout de plus de meta fonctionnerait pour des profondeurs plus grandes, mais en réalité ça ne l'a pas été… Mais ça a fait l'affaire pour la profondeur 1 au moins.

4
kikus

en regardant un fichier json dans SublimeText, j'ai réalisé que les clés et les valeurs avaient différentes portées. il est donc très simple de personnaliser votre jeu de couleurs et d’ajouter une couleur différente pour les clés et les valeurs.

les clés ont la portée de source.json meta.structure.dictionary.json string.quoted.double.json tandis que les valeurs ont source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json

donc, si vous ajoutez cet extrait au bas de vos règles de jeu de couleurs, vous devriez les voir de différentes couleurs:

    <dict>
        <key>name</key>
        <string>Json Keys</string>
        <key>scope</key>
        <string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#FF0000</string> <!-- your keys color -->
        </dict>
    </dict>
    <dict>
        <key>name</key>
        <string>JSON Values</string>
        <key>scope</key>
        <string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#00FF00</string> <!-- your custom color -->
        </dict>
    </dict>
0
Allen Bargi

Outre les autres bonnes réponses publiées, une autre solution très simple et très élégante au problème consiste à utiliser le thème Boxy Theme . La syntaxe est mise en surbrillance par défaut pour JSON lorsque vous utilisez l'un des schémas de couleurs inclus.

Installation

Installez à l’aide de Package Control , où Boxy est répertorié sous le nom Boxy Theme.

  1. Ouvrez Command Palette via Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Choisissez Package Control: Install Package
  3. Trouvez Boxy Theme et appuyez sur Enter
  4. Redémarrez Sublime Text
  5. Répétez l'étape 1, puis choisissez Package Control: Satisfy Dependencies
  6. Redémarrer le texte sublime

Activation

Activez le thème et le jeu de couleurs de l'interface utilisateur à l'aide des commandes fournies par le thème:

  1. Ouvrez Command Palette via Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Choisissez Boxy Theme: Activation ou Boxy Theme: Configuration
  3. Hit Enter
  4. Redémarrer le texte sublime

Configuration étendue →


Thème Boxy avec Boxy Tomorrow Jeu de couleurs appliqué. Les variations de couleur sont disponibles 10 niveaux de profondeur:

 Boxy Tomorrow Color Scheme

0
Ce.