Перейти к основному содержимому Главная страница каталога дополнений для NVDA от русскоязычного сообщества NVDA.RU.

Официальный русскоязычный каталог дополнений NVDA

Крупнейший каталог дополнений для программы экранного доступа NVDA, доступный в Интернете

Каталог дополнений от «🇷🇺 Русскоязычного сообщества NVDA.RU.»

18 ноября 2024 года русскоязычному каталогу дополнений NVDA-ADDONS.RU исполнилось два года.

NVDAJson (Форматирование JSON в NVDA)

Краткое описание

Дополнение NVDAJson ддобавляет функционал для форматирования JSON в NVDA.
Сочетание клавиш:
NVDA+J: Если текст выделен, берет выделенный JSON-текст и показывает его отформатированным в диалоге NVDA с возможностью просмотра. Если текст не выделен, отображает диалог форматирования Json-текста, получая Json-данные из буфера обмена.
NVDA+Shift+J: форматирует несколько JSONS в одном тексте.
NVDA+Control+J: Преобразование строк с помощью JSONPointer.
Это дополнение позволяет фильтровать / преобразовывать JSON с помощью JQ или JSONPath.
По умолчанию используется JQ, но вы можете изменить это в панели настроек NVDA.
JQ - это как язык программирования для фильтрации и преобразования JSON-данных.
Благодаря такой гибкости, этот механизм запросов используется в дополнении по умолчанию.
JSONPath - это синтаксис, позволяющий фильтровать элементы JSON.
Примеры использования приведены в справке.
Сочетание клавиш изменить нельзя - эта возможность не реализовано разработчиком.

⬇ Перейти к подробной справке 🔝 Назад к оглавлению

Основная информация

Название Версия Совместимость с API NVDA Последняя протестированная версия NVDA Минимальная версия NVDA Дата загрузки в каталог Размер Лицензия
nvda-json 2.0.2 2024.1 2024.1.0 2019.3.0 03-01-2025 18:24:03 619 Кб. GPL v2
🔝 Назад к оглавлению

Информация о локализации на русский язык

🔝 Назад к оглавлению

Скачать

NvdaJson-V.2.0.2.nvda-addon

⬇ Перейти к истории версий 🔝 Назад к оглавлению

Разделы

🔝 Назад к оглавлению

Справка

Подробнее

NVDAJson (Форматирование JSON в NVDA)

Дополнение NVDAJson ддобавляет утилиты для обработки JSON в NVDA.

Использование

Как работает функция нескольких JSONS

Бывают ситуации, когда у нас есть несколько JSON, по одному на строку (например, строки журнала):

{«datetime»: «2022-03-10 21:04:05», „level“: «info», „message“: «пользователь вошел в систему"}
{ «datetime»: «2022-03-10 21:04:08», „level“: «error», „message“: «База данных не работает"}

При нажатии «NVDA+shift+j» это дополнение берет каждую строку, форматирует и отображает все элементы в виде списка.

Отформатированный текст будет отображаться следующим образом:

[
    {
        «datetime": «2022-03-10 21:04:05»,
        «level": «info»,
        «message": «пользователь вошел в систему»
    },
    {
        «datetime": «2022-03-10 21:04:08»,
        «level": «ошибка»,
        «message": «База данных не работает»
    }
]

Фильтрация / преобразование JSON

Это дополнение позволяет фильтровать / преобразовывать JSON с помощью JQ или JSONPath. По умолчанию используется JQ, но вы можете изменить это в панели настроек NVDA.

Когда вы открываете диалог JSON с помощью «NVDA+j» или «NVDA+shift+j», вы видите три текстовых поля: исходный текст, выражение запроса и выход. Для фильтрации/преобразования JSON необходимо использовать второе текстовое поле. Вы вводите запрос, нажимаете Enter и проверяете результат в текстовом поле «Выход».

Для проверки этой функции вы можете использовать этот поддельный лог-файл:

{«timestamp»: «2024-11-07T14:12:45Z», „level“: «INFO», „trace_id“: «abc123», „span_id“: «span789», „message“: «User login successful"}
{ «timestamp»: «2024-11-07T14:13:12Z», „level“: «ERROR», „trace_id“: «def456», „span_id“: «span101», „message“: «Не удалось подключиться к базе данных"}
{ «timestamp»: «2024-11-07T14:15:30Z», „level“: «DEBUG», „trace_id“: «ghi789», „span_id“: «span202», „message“: «Fetching data from cache"}
{ «timestamp»: «2024-11-07T14:17:02Z», „level“: «WARN», „trace_id“: «jkl012», „span_id“: «span303», „message“: «Обнаружено высокое использование памяти"}
{ «timestamp»: «2024-11-07T14:19:25Z», „level“: «INFO», „trace_id“: «mno345», „span_id“: «span404», „message“: «Запущено фоновое задание"}
{ «timestamp»: «2024-11-07T14:21:58Z», „level“: «ERROR», „trace_id“: «pqr678», „span_id“: «span505», „message“: «Timeout while waiting for external API response"}
{ «timestamp»: «2024-11-07T14:23:47Z», „level“: «DEBUG», „trace_id“: «stu901», „span_id“: «span606», „message“: «Данные профиля пользователя успешно разобраны"}
{ «timestamp»: «2024-11-07T14:25:15Z», „level“: «WARN», „trace_id“: «vwx234», „span_id“: «span707», „message“: «Вызвана устаревшая версия API"}
{ «timestamp»: «2024-11-07T14:27:33Z», „level“: «INFO», „trace_id“: «yzb567», „span_id“: «span808», „message“: «Файл успешно загружен"}
{ «timestamp»: «2024-11-07T14:29:09Z», „level“: «ERROR», „trace_id“: «cde890», „span_id“: «span909», „message“: «Null pointer exception encountered"}

JQ

JQ - это как язык программирования для фильтрации и преобразования JSON-данных. Благодаря такой гибкости, этот механизм запросов используется в дополнении по умолчанию.

Примеры JQ-программ:

описание запрос
Получить исходный JSON .
Извлечь все сообщения журнала [].message
Получить все записи INFO .[] \| select(.level == «INFO»)
Получить объект, содержащий только «timestamp» и «message» для записей WARN [] \| select(.level == «WARN»)\| {timestamp, message}
Получение временной метки записей, содержащих в сообщении слово «cache» [] \| select(.message \| test(«cache»)) \| .timestamp
Получить только поля «message» и «timestamp», сгруппированные по уровню group_by(.level) \| map({(.[0].level): map({message: .message, timestamp: .timestamp})})
Получить первые три записи с уровнем DEBUG [] \| select(.level == «DEBUG»)\| . \| limit(3;.)
Добавить поле «is_critical=true» для уровней ERROR и false для остальных [] \| .is_critical = (.level == «ERROR») \| .
Удаление записей DEBUG map(select(.level != «DEBUG»))
Сортировка записей по метке времени, по возрастанию sort_by(.timestamp)

JSONPath

JSONPath - это синтаксис, позволяющий фильтровать элементы JSON. Вы можете изучить его в документации.

Примеры запросов:

описание запрос
Получить исходный JSON $
Извлечь все сообщения журнала $..message
Получить записи с уровнем = ERROR $[?(@.level == 'ERROR')]
Извлеките поле «trace_id» из всех записей INFO $[?(@.level == 'INFO')].trace_id
Получить все записи, не относящиеся к отладке $[?(@.level != 'DEBUG')]
Извлечение всех журналов до временной метки $[?(@.timestamp > '2024-11-07T14:20:00Z')]

Преобразование строк с помощью JSONPointer (NVDA+ctrl+j)

Оригинальная идея от @thgcode в этом выпуске

Дано следующее JSON:

{
    "name": "Josiel",
    "family": {
        "mother": {"name": "Maria"}
    },
    «programming_languages": [«Java», «PHP»]
}

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

Меня зовут {/name}, мою маму зовут {/family/mother/name}, а мой любимый язык программирования {/programming_languages/1}

Выходные данные:

Меня зовут Джосиэль, мою маму зовут Мария, а мой любимый язык программирования - PHP

Использование автозаполнения

В поле редактирования выражения:

В списке предложений:

Возможности (реализованные и будущие)

🔝 Назад к оглавлению

История версий

Список версий
🔝 Назад к оглавлению