TDG Documentation portal logo
Помощь
Обновлена 22 июня 2026 г. в 15:31

Преобразование данных

Доступные модули:

  • mapping_tools - работа со значениями объекта;
  • soap - конвертация XML-документов в объекты Lua и обратно;
  • json - конвертация JSON-строк в объект Lua и обратно;
  • yaml - конвертация YAML-строк в объект Lua и обратно;
  • msgpack - конвертация строк MsgPack в объекты Lua и обратно;
  • table - работа с таблицами в Lua;
  • decimal - вычисления с точными числами;
  • digest - кодирование и хеширование;
  • fun - библиотека Luafun для функционального программирования;
  • math - интерфейс стандартной математической библиотеки Lua;
  • string - работа со строками в Lua;
  • utf8 - обработка строк в кодировке UTF-8;
  • uuid - модуль для работы с UUID (универсальный уникальный идентификатор);
  • uri
    • модуль для преобразования строк URI в компоненты этих строк и обратно. Доступен с версии 2.17.0. Поддерживаемые методы:
    • uri.parse() - разобрать строку URI на компоненты;
    • uri.format() - сформировать строку URI из указанных компонентов;
    • uri.escape() - кодировать строку, используя заданные опции кодирования;
    • uri.unescape() - декодировать строку, используя заданные опции кодирования;
    • uri.parse_many() - разобрать одну или несколько строк URI на компоненты;
    • uri.unreserved() - создать аргумент для метода uri.escape() из переданной строки. Эти символы не будут экранироваться;
  • xml - модуль для анализа XML, обертка вокруг Tarantool-модуля luarapidxml. Доступен с версии 2.18.0.

Помимо модулей, для работы доступна константа box.NULL (нулевой указатель) из встроенного Tarantool-модуля box.

mapping_tools

Модуль mapping_tools содержит функции для работы со значениями внутри объектов.

get_by_path(obj, path[, delimiter])

Получает значение из объекта по его пути с заданным разделителем.

Параметры:

  • obj (table) — объект

  • path (string) — путь к объекту

  • delimiter (string) — разделитель ([.]{.title-ref} по умолчанию).

Возвращает

объект

Тип возвращаемого значения

table

set_by_path(obj, path, value[, delimiter])

Присваивает значение объекту по его пути с заданным разделителем.

Параметры:

  • obj (table) — объект

  • path (string) — путь к объекту

  • value (table) — значение объекта

  • delimiter (string) — разделитель ([.]{.title-ref} по умолчанию).

Возвращает

none

just_get_and_set(source_object, source_path, target_object, target_path)

Получает значение из одного объекта и присваивает его другому объекту.

Параметры:

  • source_object (table) — исходный объект, из которого получают значение

  • source_path (string) — путь к исходному объекту

  • target_object (table) — целевой объект, которому передается значение исходного объекта

  • target_path (string) — путь к целевому объекту

Возвращает

none

soap

Модуль soap содержит функции для преобразования SOAP-запроса в формате XML в объекты Lua и обратно.

encode(data)

Преобразует Lua-таблицу в строку с XML-документом.

Параметры:

  • data (table) — Lua-таблица

Возвращает

XML-документ

Тип возвращаемого значения

string

decode(doc)

Преобразует строку с XML-документом в объекты Lua.

Параметры:

  • doc (string) — XML-документ

Возвращает

объекты Lua, полученные в результате парсинга XML.

  • строка, содержащая указатель на пространство имен (namespace);
  • строка с именем метода, переданного в SOAP-запросе (method);
  • Lua-таблица, которая содержит значения, переданные в тегах SOAP-запроса (entries).

Тип возвращаемого значения

string or table

json

Функции из модуля json для преобразования строки в формате JSON в объект Lua и обратно.

encode(lua_value[, configuration])

Преобразует объект Lua в строку в формате JSON.

Параметры:

  • lua_value (table/scalar) — объект Lua

  • configuration — дополнительные опции конфигурации (см. функцию json.cfg())

Возвращает

JSON-строка

Тип возвращаемого значения

string

decode(string[, configuration])

Преобразует JSON-строку в объект Lua.

Параметры:

  • string (string) — строка в формате JSON

  • configuration — дополнительные опции конфигурации (см. функцию json.cfg())

Возвращает

Lua-таблица

Тип возвращаемого значения

table

yaml

Функция из модуля yaml для преобразования строки в формате YAML в объект Lua.

encode(lua_value)

Преобразует объект Lua в строку в формате YAML.

Параметры:

  • lua_value (table/scalar) — объект Lua

Возвращает

YAML-строка

Тип возвращаемого значения

string

table

Модуль table содержит функции для работы с таблицами в Lua. Информация о модуле table и доступных функциях приведена в справочнике по встроенным модулям. Кроме того, модуль расширен двумя дополнительными функциями:

cmpdeeply(got, expected[, extra])

Сравнение двух таблиц с учетом вложенности.

Параметры:

  • got (lua-value) — фактический результат

  • expected (lua-value) — ожидаемый результат

  • extra (table) — таблица, в которой сохраняется путь для различающихся элементов

Возвращает

результат сравнения, true или false

Тип возвращаемого значения

boolean

append_table(where, from)

Копирует один массив в конец другого массива. При этом используется неглубокое (shallow) копирование.

Параметры:

  • where (table) — целевая таблица, в которую вставляют значения из первой таблицы

  • from (table) — таблица, значения которой добавляют в целевую таблицу

Возвращает

целевая таблица

Тип возвращаемого значения

table

Константа box.NULL

Константа box.NULL представляет собой нулевой указатель (NULL pointer). box.NULL позволяет хранить ключ без значения, в таблицах эта константа является местозаполнителем для значения nil. Имеет тип cdata. Чтобы узнать больше о box.NULL, обратитесь к соответствующему разделу справочника> в документации Tarantool.