it-swarm.dev

Muy necesario: visor de registro JSON bien destacado

Al usar winston para el registro de node.js, obtengo archivos de registro json. Un archivo de registro en este sentido es simplemente una secuencia de objetos json (delimitados por nueva línea). ¡Esto es excelente para la consulta de registros y para tratar los registros como datos de primera clase!

Sin embargo, tanto Sublime y gedit (al menos las versiones de las que estoy usando en Ubuntu, sublime 2 y gedit 3.6.2), resaltan mal json: usan el mismo color para las claves y los valores, haciendo que cualquier taladrado sea bastante doloroso y Realmente imposible de atravesar de manera remotamente humana.

El chrome extensions existente para el resaltado json tampoco es útil aquí, ya que no pueden manejar una colección de objetos json y, por lo tanto, no pueden mostrar estos archivos de registro a menos que manualmente los convierta en una matriz dentro de un objeto primario sintético (convirtiéndolos así en un json). objeto). Esto es tedioso en el caso de ver un archivo de registro que aún se está escribiendo y en general ...

¿Existe alguna herramienta que pueda tragar los archivos de registro json tal como están y, al mismo tiempo, resaltar las teclas en un color diferente al de los valores, de modo que los registros json también sean amigables para el hombre, no solo para la máquina? Esto es un dolor verdadero.

¡Gracias!

22
matanster

Consulte el Esquema de color de neón , disponible a través de Control de paquete y Github para texto sublime. Las claves y los valores se resaltan en diferentes colores, y hay diferentes colores clave para diferentes niveles.

JSON with Neon

Revelación completa: soy el mantenedor de este proyecto, pero realmente creo que lo ayudará, ciertamente me ayuda cuando se trabaja con archivos JSON de múltiples niveles como el que se muestra arriba.

27
MattDMo

Si te gusta el tema predeterminado de Monkai, echa un vistazo al tema MonokaiJSON +. Es compatible con cadenas, diccionarios, matrices y todos estos mezclados también!

https://github.com/ColibriApps/MonokaiJsonPlus

Monokai JSON+ Theme

24
Ben Marten

Modifiqué el tema original de Twilight para agregar reglas para json más bonita. Es una versión modificada de la respuesta de @MattDMo, y tiene los mismos colores clave diferentes para diferentes niveles. Puedes conseguirlo desde aquí.

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

Así es como se ve JSON:

enter image description here

5
Shaunak

Mezclando Allen Bargui 's y MattDMo ' s respuestas, puede cambiar el color de las claves/valores anidados simplemente agregando más dictados especificando la profundidad del código agregando un meta después de la fuente source.json Word.

Localice el archivo de tema en Preferencias> Examinar paquetes y luego en la carpeta Esquema de color - Predeterminado. Edítalo añadiendo estas líneas:

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

Es importante agregar los más profundos ANTES del resto , ya que Sublime seleccionará la primera aparición coincidente. Supuse que agregar más meta funcionaría para profundidades más profundas, pero en realidad no fue así ... Pero funcionó al menos para la profundidad 1.

4
kikus

al mirar un archivo json en SublimeText, me di cuenta de que las claves y los valores tienen diferentes ámbitos. por lo tanto, debería ser muy trivial personalizar su combinación de colores y agregar colores diferentes para las claves y los valores.

las claves tienen un alcance de source.json meta.structure.dictionary.json string.quoted.double.json mientras que los valores tienen source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json

así que si agrega este fragmento en la parte inferior de las reglas de la combinación de colores, debería verlos en diferentes colores:

    <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

Aparte de las otras grandes respuestas publicadas, otra solución realmente simple y muy elegante al problema es utilizar el Boxy Theme . Tiene resaltado de sintaxis de forma predeterminada para JSON cuando se usa uno de los esquemas de color incluidos.

Installation

Instale utilizando Control de paquetes , donde Boxy aparece como Boxy Theme.

  1. Abra Command Palette a través de Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Elija Package Control: Install Package
  3. Encuentra Boxy Theme y pulsa Enter
  4. Reiniciar texto sublime
  5. Repita el paso 1, luego elija Package Control: Satisfy Dependencies
  6. Reiniciar texto sublime

Activación

Active el tema de la interfaz de usuario y la combinación de colores mediante los comandos proporcionados por el tema:

  1. Abra Command Palette a través de Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Elija Boxy Theme: Activation o Boxy Theme: Configuration
  3. Pulse Enter
  4. Reiniciar texto sublime

Configuración extendida →


Boxy Theme con Boxy Tomorrow Esquema de color aplicado. Las variaciones de color están disponibles a 10 niveles de profundidad:

Boxy Tomorrow Color Scheme

0
Ce.