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

Загрузка таблицы из сериализованного текста (table.load_string)

Объявление

таблица = table.load_string(текст_таблицы)

Параметры

  • текст таблицы
    Текст сериализованной древовидной структуры таблицы; может содержать только статические данные и не должен содержать динамический код.

Возвращаемое значение

  • таблица
    Таблица или nil; при успехе возвращается структура таблицы, при ошибке — nil.

Описание

Преобразует текстовое описание древовидной структуры в объект-таблицу.
В определённой степени table.load_string можно считать обратной функцией table.deep_dump; фактическая применимость зависит от наличия циклических ссылок или ссылочных типов, не являющихся таблицами.
В отличие от load, эта функция не выполняет код из текста, а читает только статические данные.
Пример ниже содержит исполняемый код; после выполнения b равно nil (код не выполняется).

b = table.load_string[[ {
a = os.execute('reboot'), -- Этот код не выполняется и возвращается nil.
} ]]

Пример

local t = table.load_string[[ {
a = 1,
b = 2,
c = 3,
} ]]
sys.alert(t.b)

Примечание: в приведённом коде используется функция из другой главы — sys.alert.