Синтаксис
json.tryDecode(json: string, options?: DecodeOptions): boolean | any | nil | string | nil | number | nilАргументы
| Имя | Тип | Описание |
|---|---|---|
json | string | Строка JSON для анализа, форматирования, минимизации или проверки. |
options? | DecodeOptions | Дополнительная таблица настроек, которая управляет поведением операции. |
Возвраты
| Имя | Тип | Описание |
|---|---|---|
success | boolean | Истинно, если операция завершилась успешно. |
decoded | any | nil | Декодированное значение Luau или декодированная строка байтов. |
errorMessage | string | nil | Сообщение об ошибке возвращается при сбое загрузки или анализа, в противном случае - ноль. |
errorPosition | number | 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.