JSON

json.tryDecode

Próbuje przeanalizować kod JSON i zamiast rzucać zwraca uporządkowane informacje o błędach.

Składnia

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

Argumenty

NazwaTypOpis
jsonstringCiąg JSON do analizowania, formatowania, minimalizacji lub sprawdzania poprawności.
options?DecodeOptionsOpcjonalna tabela ustawień, która kontroluje zachowanie operacji.

Zwroty

NazwaTypOpis
successbooleanPrawda, gdy operacja zakończyła się pomyślnie.
decodedany | nilZdekodowana wartość Luau lub zdekodowany ciąg bajtów.
errorMessagestring | nilKomunikat o błędzie zwrócony w przypadku niepowodzenia ładowania lub analizowania, w przeciwnym razie zero.
errorPositionnumber | nilPozycja, w której analiza nie powiodła się, lub zero, jeśli nie wystąpił żaden błąd analizy.

Opis

Próbuje przeanalizować kod JSON i zamiast rzucać zwraca uporządkowane informacje o błędach.

Wywolaj z 2 parametrami: json, options. Tabela argumentow wyjasnia wartosci wymagane i te, ktore doprecyzowuja zachowanie.

Zwraca success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil). Uzyj tabeli zwrotow, aby oddzielic wartosci sukcesu, wyniki nil i bledy do obsluzenia.

Przykład

Spróbuj zdekodować JSON bez wrzucania zniekształconych danych wejściowych.

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

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

Typy

DecodeOptions

Kontroluje zachowanie analizy JSON.

useNull? boolean Reprezentuje JSON null ze wskaźnikiem null biblioteki zamiast nil.maxDepth? integer Ustawia maksymalną głębokość zagnieżdżenia, zaciśniętą w zakresie od 1 do 4096.