gifts2017

1C7.7 парсер JSON

Опубликовал Дмитрий Ивакин (pit201201) в раздел Программирование - Универсальные функции

РАБОТОСПОСОБНЫЙ парсер JSON встраивается в глобальный модуль в виде 3х функций. Для достижения положительного результата активно используется regexp.

Работоспособная версия парсера JSON. Вызов парсера осуществляется функцией

Результат =глJSONПарсер("{""firstName"":""Иван"",""lastName"":""Иванов"",""address"":{""streetAddress"":""Московское ш.,101,кв.101"",""city"":""Ленинград"",""postalCode"":101101},""phoneNumbers"":[""812 123-1234"",""916 123-4567""]}"); 

Разбор строки с JSON осуществляется рекурсивной функцией JSONТокен. Функция JSONТокенТабле вспомогательная, она необходима для разбора массива заключенного в квавдратные скобки, например :

"phoneNumbers":["812 123-1234","916 123-4567"]

Все использованные в настоящей работе шаблоны (patterns) regexp проверены с помощью online regexp tester.

Результатом работы является индексированнная таблица (см. 1С++ ИндексированнаяТаблица ) с полями KEY, PARENT и VALUE.

Для тестирования в глобальный модуль встроена функция глJSONОтобразитьСписокЗначений. Пример ее вызова можно найти в обработке для тестирования (см. вложенные файлы).

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

Наименование Файл Версия Размер Кол. Скачив.
Обработка для тестирования
.ert 27,00Kb
23.01.14
15
.ert 1.0.0.0 27,00Kb 15 Скачать
Глобальный модуль
.txt 3,95Kb
23.01.14
21
.txt 1.0.0.0 3,95Kb 21 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. selesta (selesta) 20.03.14 13:44
а есть ограничения на длину строки?
можно ли указать бооольшой масив, например, добавив его из текстового файла?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа