Подтвердить что ты не робот

Очень необходимо: хорошо выделенный JSON-просмотрщик журналов

Используя winston для журнала node.js, я получаю файлы журнала json. Файл журнала в этом ключе представляет собой просто последовательность объектов (jns), связанных с новой строкой. Это отлично подходит для ведения журналов и обработки журналов в качестве первоклассных данных!

Однако, как Sublime, так и gedit (по крайней мере, их версии, которые я использую на Ubuntu, возвышенном 2 и gedit 3.6.2), плохо выделяют json - они используют один и тот же цвет для ключей и значений, что делает любое бурение в журналах довольно болезненным и действительно невозможным для прохождения через любую удаленно гуманную манеру.

Существующие chrome extensions для подсветки json тоже не помогают - они не могут обрабатывать коллекцию json-объектов и, таким образом, не могут отображать эти файлы журналов, если я вручную не превращу их вручную в массив в синтетическом родительском объекте (таким образом, превращая их в объект json). Это утомительно в случае просмотра файла журнала, который все еще записывается и вообще......

Есть ли какой-либо инструмент, который может как проглатывать файлы журнала json как есть, так и в то же время выделять клавиши другого цвета, чем значения, так что журналы json также дружественны для человека, а не только для машин? это настоящая боль.

Спасибо!

4b9b3361

Ответ 1

Посмотрите Neon Color Scheme, доступный через Управление пакетами и Github для Sublime Text. Клавиши и значения выделяются разными цветами, и для разных уровней существуют разные ключевые цвета.

JSON with Neon

Полное раскрытие: я поддерживаю этот проект, но я действительно думаю, что это поможет вам - это, безусловно, помогает мне при работе с многоуровневыми файлами JSON, такими как показано выше.

Ответ 2

Если вам нравится тема Monkai по умолчанию, ознакомьтесь с темой MonokaiJSON+! Он также поддерживает строки, словари, массивы и все это вместе!

https://github.com/ColibriApps/MonokaiJsonPlus

Monokai JSON+ Theme

Ответ 3

Я изменил оригинальную тему сумерек, чтобы добавить правила для более красивого json. Это модифицированная версия ответа @MattDMo и имеет похожие цвета клавиш для разных уровней. Вы можете получить это отсюда

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

Вот как выглядит JSON:

enter image description here

Ответ 4

Смешивая Allen Bargui и MattDMo, вы можете изменить цвет вложенных ключей/значений на просто добавив больше dicts, определяющих глубину кода, добавив meta после слова source.json.

Найдите файл темы, перейдя в меню "Настройки" > "Обзор пакетов", а затем в "Цветовая схема - папка по умолчанию". Отредактируйте его, добавив следующие строки:

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

Важно, чтобы добавить более глубокие перед остальным, поскольку Sublime выберет первое совпадающее вхождение. Я предположил, что добавление большего количества meta будет работать для дальнейших глубин, но на самом деле этого не произошло... Но это сделало трюк для глубины 1. По крайней мере.

Ответ 5

Вы обнаружите, что https://jsonlog.io/ - это решение, которое обеспечивает отличный обзор ввода-вывода структурированных данных вашего приложения. Я разработчик за этим, но это бесплатный ресурс, который я создал, чтобы решить эту проблему в моем собственном рабочем процессе.

Вот пример одного из форматов журналов, которые могут помочь:

JSONLog Pretty Log View

И так как это живая платформа типа регистрации, данные отображаются в реальном времени, как они отправляются из вашего приложения. Это отличный способ получить представление о IO приложения Live/Dev.

Ответ 6

глядя на json файл в SublimeText, я понял, что ключи и значения имеют разные области. поэтому для настройки цветовой схемы и добавления цвета для клавиш и значений должно быть очень тривиально.

Клавиши

имеют область source.json meta.structure.dictionary.json string.quoted.double.json , а значения имеют source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json

поэтому, если вы добавите этот фрагмент в нижней части правил цветовой схемы, вы увидите их в разных цветах:

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

Ответ 7

Помимо других замечательных ответов, еще одно очень простое и очень элегантное решение проблемы - использовать Boxy Theme. Он имеет подсветку синтаксиса по умолчанию для JSON при использовании одной из включенных цветовых схем.

Установка

Установите с помощью Package Control, где Boxy указан как Boxy Theme.

  1. Откройте Command Palette через Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Выберите Package Control: Install Package
  3. Найдите Boxy Theme и нажмите Enter
  4. Перезапустите Sublime Text
  5. Повторите шаг 1, затем выберите Package Control: Satisfy Dependencies
  6. Перезапустите Sublime Text

Активация

Активируйте тему и цветовую схему пользовательского интерфейса с помощью команд, предоставляемых темой:

  1. Откройте Command Palette через Command+Shift+P (mac) / Ctrl+Shift+P (win)
  2. Выберите Boxy Theme: Activation или Boxy Theme: Configuration
  3. Хит Enter
  4. Перезапустите Sublime Text

Расширенная конфигурация & <8594;


Бокс-тема с применением Бокси-завтра. Цветовые вариации доступны в 10 уровнях:

Boxy Tomorrow Color Scheme