JSON

json.decodeSafe

Analysiert JSON ohne Auslösen und gibt Erfolgs-, Wert- und Fehlerdetails zurück.

Syntax

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

Argumente

NameTypBeschreibung
jsonstringJSON-Zeichenfolge zum Parsen, Formatieren, Minimieren oder Validieren.
options?DecodeOptionsOptionale Einstellungstabelle, die das Verhalten des Vorgangs steuert.

Rückgaben

NameTypBeschreibung
successbooleanTrue, wenn der Vorgang erfolgreich abgeschlossen wurde.
decodedany | nilDecodierter Luau-Wert oder decodierte Bytefolge.
errorMessagestring | nilWenn das Laden oder Parsen fehlschlägt, wird eine Fehlermeldung zurückgegeben, andernfalls Null.
errorPositionnumber | nilPosition, an der die Analyse fehlgeschlagen ist, oder Null, wenn kein Analysefehler aufgetreten ist.

Beschreibung

Analysiert JSON ohne Auslösen und gibt Erfolgs-, Wert- und Fehlerdetails zurück.

Rufe es mit 2 Parameter(n) auf: json, options. Die Argumenttabelle erklärt, welche Werte erforderlich sind und welche nur das Verhalten verfeinern.

Es gibt success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil) zurück. Nutze die Rückgabetabelle, um erfolgreiche Werte von nil-Ergebnissen und behandelbaren Fehlern zu trennen.

Beispiel

Analysieren Sie nicht vertrauenswürdiges JSON, ohne einen Fehler auszulösen.

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

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

Typen

DecodeOptions

Steuert das JSON-Parsing-Verhalten.

useNull? boolean Stellt JSON Null mit dem Null-Sentinel der Bibliothek anstelle von Null dar.maxDepth? integer Legt die maximale Verschachtelungstiefe fest, geklemmt von 1 bis 4096.