JSON

json.tryDecode

Пытается проанализировать JSON и вместо выдачи возвращает структурированную информацию об ошибке.

Синтаксис

json.tryDecode(json: string, options?: DecodeOptions): boolean | any | nil | string | nil | number | nil

Аргументы

ИмяТипОписание
jsonstringСтрока JSON для анализа, форматирования, минимизации или проверки.
options?DecodeOptionsДополнительная таблица настроек, которая управляет поведением операции.

Возвраты

ИмяТипОписание
successbooleanИстинно, если операция завершилась успешно.
decodedany | nilДекодированное значение Luau или декодированная строка байтов.
errorMessagestring | nilСообщение об ошибке возвращается при сбое загрузки или анализа, в противном случае - ноль.
errorPositionnumber | nilПозиция, в которой произошел сбой синтаксического анализа, или ноль, если ошибка синтаксического анализа не произошла.

Описание

Пытается проанализировать JSON и вместо выдачи возвращает структурированную информацию об ошибке.

Вызывай с 2 параметрами: json, options. Таблица аргументов показывает обязательные значения и настройки поведения.

Возвращает success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil). Используй таблицу возвращаемых значений, чтобы отличать успех, nil и обрабатываемые ошибки.

Пример

Попытайтесь декодировать JSON, не выдавая неверный ввод.

local ok, value, message, position = json.tryDecode('{"ready":true}')

if ok then
    print(value.ready)
else
    warn(message, position)
end

Типы

DecodeOptions

Управляет поведением анализа JSON.

useNull? boolean Представляет значение JSON null с нулевым контрольным значением библиотеки вместо nil.maxDepth? integer Устанавливает максимальную глубину вложенности от 1 до 4096.