Синтаксис
json.decodeSafe(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.decodeSafe('{"ready":true}')
if ok then
print(value.ready)
else
warn(message, position)
endТипы
DecodeOptions
Управляет поведением анализа JSON.
useNull? boolean Представляет значение JSON null с нулевым контрольным значением библиотеки вместо nil.maxDepth? integer Устанавливает максимальную глубину вложенности от 1 до 4096.