JSON -> Дерево значений
Очередной просмотрщик json-структуры
- Описание
- Подробнее
Описание
Всем привет!
В ходе обсуждений под публикацией Загрузка JSON в дерево значений родилась обработка — очередной вариант просмотрщика json-структуры.
От чего хотелось уйти в алгоритме из вышеназванной публикации — если вы посмотрите на результат чтения json-структуры, то заметите повторение узлов — повторение Параметров — и не понятно, то ли это очередной Параметр, то ли это элемент списка (элемент Массива) — см.рис.

В обработке, которая представлена в публикации, подобных вопросов не возникнет — слева вы вставляете текст json, справа видите результат чтения json-структуры в формате дерева значений.
Отличия в новом просмотрщике:
1) не используются файлы — это неудобно для больших файлов, но удобно для отладки процесса чтения json-структуры — вы только копируете содержимое json-файла (через любой текстовый редактор) и вставляете в левое поле обработки. В одном окне видите и json и дерево значений в 1с.
2) дерево значений json-структуры содержит три (!), а не два поля для просмотра и анализа — это Параметр, Значение параметра и Тип параметра (в обработке это ТипЭлемента — отсылка к тому, что это в первую очередь элемент списка, список в json-структуре описывается типом "Массив").
3) в дерево значений добавляется "служебный" узел с номером индекса — только для элементов Массива — для того, чтобы посмотреть на структуру и сразу понять, что этот узел является элементом Массива, а не узлом очередного Параметра — см. рисунок.

Обновление от 21-12-2021:
1) добавил сохранение текста json, который слева анализируем — при открытии восстанавливается, при закрытии сохраняется.
2) добавил поиск по параметру по дереву — с выделением желтым цветом строки найденного параметра — см. рис.

3) добавил поле "Команда" — по сути это строка кода для вызова и получения значения соответствующего параметра (см. рис. ниже).

Надо учитывать, что переменная Данные — это структура нашего json-текста, которую мы получаем так:
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ЭлементыФормы.ПолеТекстовогоДокумента1.ПолучитьТекст());
Данные = ПрочитатьJSON(Чтение);Просто скопируйте соответствующую команду в поле согласно стрелке как на рисунке — результат появится справа (кроме случаев Неопределено). Что-то подобное вы видите в конфигураторе в отладчике выражений.
Обработка создана на платформе 1С:Предприятие 8.3 (8.3.18.1289), на пустой конфигурации для _ОбычныхФорм. Для управляемых форм будет реализовано в будущем — подписывайтесь на комментарии — сообщу дополнительно через них.
Небольшое отступление. Исторически сложилось так, что я только что закончил отладку алгоритма построения дерева:
— Анализ прав и ролей: поиск подходящего профиля
— Парсер шаблонов конфигурации .st
А интерес к json-структуре у меня непосредственный — кто знает, я писал цикл статей по маркировке, в которых использовал xml-формат для ручных операций. Но для операций через АПИ Честного знака надо использовать только json-структуру (!). Поэтому все не зря — анализ разбора json-структуры это очередной шаг в решении следующих задач по маркировке.
Всем добра!

