it-swarm.com.de

Viel benötigt: gut hervorgehobene JSON-Protokollanzeige

Mit der Protokollierung von winston für node.js erhalte ich Json-Protokolldateien. Eine Protokolldatei in dieser Vene ist einfach eine Folge von (durch Zeilenumbrüche getrennten) Json-Objekten. Dies ist ideal für die Protokollabfrage und die Verarbeitung von Protokollen als erstklassige Daten!

Aber sowohl Sublime als auch gedit (zumindest die Versionen, die ich unter Ubuntu, sublime 2 und gedit 3.6.2 verwende), heben json schlecht hervor - sie verwenden die gleiche Farbe für Schlüssel und Werte, was jedes Bohrloch recht schmerzhaft macht wirklich unmöglich, in irgendeiner Weise menschlich durchzugehen.

Vorhandenes chrome extensions für die Json-Hervorhebung ist auch hier nicht hilfreich - sie können keine Sammlung von Json-Objekten verarbeiten und können diese Protokolldateien daher nur dann anzeigen, wenn ich sie manuell in ein Array innerhalb eines synthetischen übergeordneten Objekts umwandle (und sie somit in einen Json verwandeln) Objekt). Dies ist umständlich, wenn eine Protokolldatei angezeigt wird, in die noch geschrieben wird, und im Allgemeinen ......

Gibt es ein Tool, das sowohl Json-Protokolldateien als auch verschlucken kann, und gleichzeitig Tasten in einer anderen Farbe als Werte hervorhebt, so dass Json-Protokolle auch für den Menschen geeignet sind, nicht nur für die Maschine? Das ist ein echter Schmerz.

Vielen Dank!

22
matanster

Schauen Sie sich das Neon-Farbschema an, das über Package Control und Github für Sublime Text verfügbar ist. Schlüssel und Werte werden in verschiedenen Farben hervorgehoben, und es gibt unterschiedliche Schlüsselfarben für verschiedene Ebenen. 

JSON with Neon

Vollständige Offenlegung: Ich bin der Betreuer dieses Projekts, aber ich denke wirklich, dass es Ihnen helfen wird - es hilft mir auf jeden Fall, wenn Sie mit mehrstufigen JSON-Dateien wie der oben gezeigten arbeiten.

27
MattDMo

Wenn Sie das Standard-Monkai-Theme mögen, sehen Sie sich MonokaiJSON + Theme! .__ an. Es unterstützt Zeichenfolgen, Wörterbücher, Arrays und alle diese auch.

https://github.com/ColibriApps/MonokaiJsonPlus

Monokai JSON+ Theme

24
Ben Marten

Ich habe das ursprüngliche Dämmerungsdesign geändert, um Regeln für schönere Json hinzuzufügen. Es handelt sich um eine modifizierte Version der Antwort von @MattDMo, die für die verschiedenen Stufen ähnlich unterschiedliche Schlüsselfarben aufweist. Sie können es von hier bekommen

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

So sieht JSON aus:

enter image description here

5
Shaunak

Durch das Mischen von Allen Bargui s und MattDMo 's können Sie die Farbe der verschachtelten Schlüssel/Werte ändern, indem Sie einfach weitere Wörter hinzufügen, die die Tiefe des Codes angeben, indem Sie eine meta nach der Quelle.json hinzufügen Wort.

Suchen Sie die Designdatei, indem Sie zu Preferences> Browse Packages und anschließend im Ordner Color Scheme - Default wechseln. Bearbeiten Sie es, indem Sie diese Zeilen hinzufügen: 

<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>

Fügen Sie die tieferen hinzu, BEVOR der Rest, da Sublime das erste übereinstimmende Vorkommnis auswählt. Ich schätzte, dass das Hinzufügen von mehr meta für weitere Tiefen funktionieren würde, aber das tat es tatsächlich nicht ... Aber es hat den Trick für Tiefe 1 gebracht.

4
kikus

beim Betrachten einer Json-Datei in SublimeText erkannte ich, dass Schlüssel und Werte unterschiedliche Gültigkeitsbereiche haben. Daher sollte es sehr trivial sein, das Farbschema anzupassen und eine andere Farbe für Schlüssel und Werte hinzuzufügen.

schlüssel haben den Geltungsbereich von source.json meta.structure.dictionary.json string.quoted.double.json , während Werte source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json haben.

wenn Sie dieses Snippet am unteren Rand Ihrer Farbschema-Regeln hinzufügen, sollten Sie sie in verschiedenen Farben sehen:

    <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

Abgesehen von den anderen großartigen Antworten ist die Verwendung des Boxy Theme eine weitere sehr einfache und sehr elegante Lösung für das Problem. Bei Verwendung eines der enthaltenen Farbschemata wird für JSON standardmäßig die Syntax hervorgehoben.

Installation

Installieren Sie sie mit Package Control , wobei Boxy als Boxy Theme aufgeführt ist.

  1. Command Palette über Command+Shift+P (mac) / Ctrl+Shift+P (win) öffnen
  2. Wähle Package Control: Install Package
  3. Suchen Sie Boxy Theme und drücken Sie Enter.
  4. Starten Sie Sublime Text neu
  5. Wiederholen Sie Schritt 1 und wählen Sie Package Control: Satisfy Dependencies.
  6. Sublime Text neu starten

Aktivierung

Aktivieren Sie das UI-Design und das Farbschema mithilfe der vom Design bereitgestellten Befehle:

  1. Command Palette über Command+Shift+P (mac) / Ctrl+Shift+P (win) öffnen
  2. Wählen Sie Boxy Theme: Activation oder Boxy Theme: Configuration
  3. Schlage Enter
  4. Sublime Text neu starten

Erweiterte Konfiguration →


Boxy Theme mit Boxy Tomorrow Farbschema angewendet. Farbvariationen sind in 10 Stufen erhältlich:

 Boxy Tomorrow Color Scheme

0
Ce.