Перейти к основному содержимому

MessagePack

Модуль 1С/OSOPI_MessagePackКоманда CLImsgpack#Использоватьoint/formats/msgpack

Этот раздел посвящен библиотеке для работы с форматом MessagePack в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы

О формате MessagePack

MessagePack — это эффективный формат бинарной сериализации данных. Он позволяет обмениваться данными между различными языками программирования, подобно JSON, но является более компактным и быстрым. MessagePack поддерживает сериализацию различных типов данных: строк, чисел, булевых значений, массивов, структур и двоичных данных.

Начало работы

Библиотека предоставляет два основных метода для работы с форматом MessagePack:

Сериализация данных

Для преобразования данных в формат MessagePack используйте функцию СериализоватьДанные:

Данные = Новый Структура;
Данные.Вставить("Имя", "Иван");
Данные.Вставить("Возраст", 30);
Данные.Вставить("Активен", Истина);

СериализованныеДанные = OPI_MessagePack.СериализоватьДанные(Данные); // ДвоичныеДанные

Функция принимает два параметра:

  • Данные — коллекция для сериализации (Структура, Массив, Соответствие и др.)
  • ИзИсточника — булево значение, указывающее что данные являются JSON строкой или файлом на диске (по умолчанию Ложь)

Десериализация данных

Для восстановления данных из формата MessagePack используйте функцию ДесериализоватьДанные:

ВосстановленныеДанные = OPI_MessagePack.ДесериализоватьДанные(СериализованныеДанные);

Поддерживаемые типы данных

Библиотека поддерживает сериализацию и десериализацию следующих типов данных:

  • Неопределено (Nil)
  • Булево (Boolean)
  • Строка (String)
  • Число (Integer и Float)
  • ДвоичныеДанные (Binary)
  • Массив (Array)
  • Структура/Соответствие (Map)

Пример работы с различными типами

// Создание сложной структуры данных
Данные = Новый Структура;
Данные.Вставить("Строка", "Тестовое значение");
Данные.Вставить("Число", 42);
Данные.Вставить("Дробное", 3.14);
Данные.Вставить("Булево", Истина);
Данные.Вставить("Пусто", Неопределено);

Массив = Новый Массив;
Массив.Добавить(1);
Массив.Добавить(2);
Массив.Добавить(3);
Данные.Вставить("Массив", Массив);

// Сериализация
СериализованныеДанные = OPI_MessagePack.СериализоватьДанные(Данные);

// Десериализация
Результат = OPI_MessagePack.ДесериализоватьДанные(СериализованныеДанные);

Работа с JSON источниками

Библиотека позволяет сериализовать данные непосредственно из JSON строки или файла:

JSONСтрока = "{""name"":""John"",""age"":30}";
СериализованныеДанные = OPI_MessagePack.СериализоватьДанные(JSONСтрока, Истина);
примечание

MessagePack обеспечивает более компактное представление данных по сравнению с JSON, что особенно эффективно при передаче больших объемов информации по сети или при хранении данных