INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Крючков Владимир | Начальник сектора разработки | ООО "Группа Полипластик"

«Как мы разрабатываем в EDT»

1. Ответим на вопрос как мы переходили на разработку в EDT. Где было больно и что стало лучше? Где светлое будущее? 2. Расскажем про использование процессов разработки для коммерческих продуктов и open source. Что такое «Git Flow», «Git Lab Flow» и «Git Hub Flow» в чем их отличие и в чем сила? 3. Командная разработка в новых реалиях: Где и как нам помогает SCRUM? Как и где используем KANBAN? Нужно ли следовать за белым кроликом? 4. Про системы баг трекинга: Интеграция с системами баг трекинга для коммерческих решений на примере JIRA. Достаточно ли возможностей «Git Hub Issue» для open source? 5. Про репозитарии: Какой репозитарий выбрать? Что такое «bitbucket», «github» и что они умеют? Как все это увязать с EDT и баг трекингом? Когда использовать приватные, а когда публичные хранилища? 6. Используем новые волшебные возможности: автосборка релиза, code review, pull request, ветвление (bruches) и др. Как именовать ветки и что писать в коммитах чтобы получить профит. 7. Немного про качество продукта: Как мы запускаем тесты при разработке в EDT? Как используем open source Фреймворк «Тестирование 3.0»?

Преобразование текста JSON в дерево значений. УФ (8.3)

Программирование - Инструментарий

3
Последнее время часто начал сталкиваться с форматом  JSON, и возникла необходимость быстро анализировать те или иные данные в этом формате, отбрасывая ненужные, но при больших объёмах данных зачастую было сложно разобраться в структуре. Так что это обработка для тех, кто хочет увидеть JSON в читабельном виде (знаю, похожие обработки есть на Инфостарте, но для моих данных они все вываливались с ошибками). Обработка ни на что не претендует и сделана исключительно в целях сэкономить время для анализа JSON.

Обработка преобразовывает JSON в дерево значений. Работает на управляемых формах (8.3.11.2924).

Есть возможности:

  1. выбрать кодировку.
  2. считывать данные напрямую из файла. 
  3. считывать данные по ссылке (GET запрос).
  4. сразу на форме вставлять текст в формате JSON и преобразовывать его.

Из полезного по коду (по моему скромному мнению), вдруг кому пригодится:

Ниже представлен код рекурсивной функции, по преобразованию полученного массива данных JSON штатными средствами ("Новый ЧтениеJSON"), в дерево значений.

&НаСервере
Функция СформироватьДерево(НашаСтруктура,ТекущееДерево)
            
    Для каждого СтрокаСтруктуры из НашаСтруктура цикл    
        Если ТипЗнч(СтрокаСтруктуры)=Тип("КлючИЗначение") тогда
            ПодчиненнаяСтрока=ТекущееДерево.Строки.Добавить();
            ПодчиненнаяСтрока.Ключ=СтрокаСтруктуры.Ключ;    
            
            Если ТипЗнч(СтрокаСтруктуры.Значение)=Тип("Структура") или ТипЗнч(СтрокаСтруктуры.Значение)=Тип("Массив")  тогда            
                СформироватьДерево(СтрокаСтруктуры.Значение,ПодчиненнаяСтрока)
            Иначе
                ПодчиненнаяСтрока.Значение=СтрокаСтруктуры.Значение;          
            КонецЕсли;
        ИначеЕсли ТипЗнч(СтрокаСтруктуры)=Тип("Структура") или ТипЗнч(СтрокаСтруктуры)=Тип("Массив")  тогда    
                ПодчиненнаяСтрока=ТекущееДерево.Строки.Добавить();
                ПодчиненнаяСтрока.Ключ="Структура";    
               СформироватьДерево(СтрокаСтруктуры,ПодчиненнаяСтрока);
           Иначе
            ПодчиненнаяСтрока=ТекущееДерево.Строки.Добавить();
            ПодчиненнаяСтрока.Значение=СтрокаСтруктуры;       
        КонецЕсли;
    КонецЦикла;
    
КонецФункции

 

Где "НашаСтруктура" - структуры/массивы JSON. А "ТекущееДерево" - строка созданного дерева значений.

Соответственно перед вызовом данной рекурсии необходимо создать переменную с типо Дерево значений и передать первую строку, в моём примере, что бы она не была пустая, заполняю её текстовым значение "Структура".

 

   Дерево= новый ДеревоЗначений;
   Дерево.Колонки.Добавить("Ключ");
   Дерево.Колонки.Добавить("Значение");
   ВерхнийУровеньдерева=Дерево.Строки.Добавить();
   ВерхнийУровеньдерева.Ключ="Структура";    
   СформироватьДерево(НашиДанныеJSON,ВерхнийУровеньдерева);

 

Публикация первая, так что сильно не кричите.

3

Скачать файлы

Наименование Файл Версия Размер
Преобразования текста JSON в дерево значений. УФ (8.3):
.epf 8,38Kb
26.04.18
7
.epf 1.0 8,38Kb 7 Скачать

См. также

Комментарии
Сортировка: Древо
2. Fedor02 15.06.18 00:13 Сейчас в теме
Добрый день, вы написал "знаю, похожие обработки есть на Инфостарте, но для моих данных они все вываливались с ошибками" , чем ваша обработка отличается от существующих, и на сколько ваша обработка является универсальной и подходит для данных разной структуры?
3. burni4 3 15.06.18 09:24 Сейчас в теме
(2) что вы подразумеваете под данными разных структур? у JSON одна структура. По поводу обработок на инфостарте, похожую нашел вот эту
https://infostart.ru/public/696196/
и введя свои данные в формате JSON получил ошибку, о чем и отписался в данной теме, поэтому и решил написать свою.
Оставьте свое сообщение