Documentación de Real

JSON

json.tryDecode

Intenta analizar JSON y devuelve información de error estructurada en lugar de arrojarla.

Sintaxis

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

Argumentos

NombreTipoDescripción
jsonstringCadena JSON para analizar, formatear, minimizar o validar.
options?DecodeOptionsTabla de configuración opcional que controla cómo se comporta la operación.

Retornos

NombreTipoDescripción
successbooleanVerdadero cuando la operación se completó correctamente.
decodedany | nilValor de Luau decodificado o cadena de bytes decodificada.
errorMessagestring | nilSe devuelve un mensaje de error cuando falla la carga o el análisis; de lo contrario, es nulo.
errorPositionnumber | nilPosición donde falló el análisis, o nula cuando no se produjo ningún error de análisis.

Descripción

Intenta analizar JSON y devuelve información de error estructurada en lugar de arrojarla.

Llamalo con 2 parametro(s): json, options. La tabla de argumentos explica que valores son obligatorios y cuales refinan el comportamiento.

Devuelve success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil). Usa la tabla de retornos para separar valores correctos, resultados nil y errores recuperables.

Ejemplo

Intente decodificar JSON sin generar entradas con formato incorrecto.

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

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

Tipos

DecodeOptions

Controla el comportamiento de análisis de JSON.

useNull? boolean Representa JSON nulo con el centinela nulo de la biblioteca en lugar de nulo.maxDepth? integer Establece la profundidad máxima de anidamiento, sujeta de 1 a 4096.