При работе с внешними системами программисты часто сталкиваются с форматом JSON. Если вы впервые столкнулись с необходимостью обработки такого файла, важно понять правильный подход к его чтению. Вместо ручного формирования дерева значений, современная платформа 1С предлагает гораздо более эффективный механизм.
Для того чтобы прочитать файл JSON и преобразовать его в удобный для работы формат (структуры и массивы), мы будем использовать объект ЧтениеJSON и функцию ПрочитатьJSON(). Это стандартный и наиболее быстрый путь.
Рассмотрим по шагам, как организовать этот процесс:
ЧтениеJSON.ОткрытьФайл().ПрочитатьJSON(), которая автоматически десериализует данные в типы 1С.Закрыть() для освобождения ресурсов системы.Давайте проанализируем готовый пример кода, который позволит вам получить доступ к данным:
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьФайл("ПутьКВашемуФайлу.json");
ДанныеЗаказ = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
// Теперь мы можем обращаться к данным как к структуре
Если ДанныеЗаказ.Свойство("ID") Тогда
НомерЗаказа = ДанныеЗаказ.ID;
КонецЕсли;
После того как вы выполнили функцию ПрочитатьJSON(), платформа сама преобразует структуру JSON в стандартные типы данных 1С:
{} превращаются в Структуру.[] превращаются в Массив.Структуры, к которым можно обращаться через точку (например, Данные.ИмяПоля).Это значительно упрощает работу, так как вам не нужно вручную парсить дерево значений. Вы просто используете стандартные методы работы с коллекциями 1С: Свойство(), Вставить(), Удалить() или перебор элементов через Для Каждого.
Если вы получили файл, структура которого вам не до конца ясна, воспользуйтесь отладчиком 1С. После выполнения команды ДанныеЗаказ = ПрочитатьJSON(Чтение), вы можете добавить переменную ДанныеЗаказ в «Табло» или «Вычисляемое выражение» и просмотреть иерархию данных в режиме реального времени. Это поможет понять, где именно находятся нужные вам значения.
Также помните о следующих нюансах:
JSON содержится массив объектов, ПрочитатьJSON() вернет Массив, в котором будут лежать Структуры. В таком случае, чтобы получить доступ к данным, нужно сначала обратиться к элементу массива по индексу, а затем к полю структуры.ЧтениеJSON с помощью метода Закрыть(). Это критически важно для предотвращения ошибок блокировки файлов, если вы читаете много данных в цикле.Свойство() перед обращением к полю структуры — это защитит ваш код от ошибок выполнения, если в файле внезапно не окажется ожидаемого ключа.Теперь, когда мы разобрали этот простой механизм, вы можете легко интегрировать любые внешние данные в вашу систему 1С, просто преобразовав их в понятные платформе структуры данных.