Очень необходимо: хорошо выделенный JSON-просмотрщик журналов
Используя winston для журнала node.js, я получаю файлы журнала json. Файл журнала в этом ключе представляет собой просто последовательность объектов (jns), связанных с новой строкой. Это отлично подходит для ведения журналов и обработки журналов в качестве первоклассных данных!
Однако, как Sublime
, так и gedit
(по крайней мере, их версии, которые я использую на Ubuntu, возвышенном 2 и gedit 3.6.2), плохо выделяют json - они используют один и тот же цвет для ключей и значений, что делает любое бурение в журналах довольно болезненным и действительно невозможным для прохождения через любую удаленно гуманную манеру.
Существующие chrome extensions
для подсветки json тоже не помогают - они не могут обрабатывать коллекцию json-объектов и, таким образом, не могут отображать эти файлы журналов, если я вручную не превращу их вручную в массив в синтетическом родительском объекте (таким образом, превращая их в объект json). Это утомительно в случае просмотра файла журнала, который все еще записывается и вообще......
Есть ли какой-либо инструмент, который может как проглатывать файлы журнала json как есть, так и в то же время выделять клавиши другого цвета, чем значения, так что журналы json также дружественны для человека, а не только для машин? это настоящая боль.
Спасибо!
Ответы
Ответ 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
.
- Откройте
Command Palette
через Command+Shift+P (mac) / Ctrl+Shift+P (win)
- Выберите
Package Control: Install Package
- Найдите
Boxy Theme
и нажмите Enter
- Перезапустите Sublime Text
- Повторите шаг 1, затем выберите
Package Control: Satisfy Dependencies
- Перезапустите Sublime Text
Активация
Активируйте тему и цветовую схему пользовательского интерфейса с помощью команд, предоставляемых темой:
- Откройте
Command Palette
через Command+Shift+P (mac) / Ctrl+Shift+P (win)
- Выберите
Boxy Theme: Activation
или Boxy Theme: Configuration
- Хит
Enter
- Перезапустите Sublime Text
Бокс-тема с применением Бокси-завтра. Цветовые вариации доступны в 10 уровнях:
![Boxy Tomorrow Color Scheme]()