JSON

json.decodeSafe

Analyse JSON sans lancer et renvoie les détails du succès, de la valeur et de l'erreur.

Syntaxe

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

Arguments

NomTypeDescription
jsonstringChaîne JSON à analyser, formater, réduire ou valider.
options?DecodeOptionsTableau de paramètres facultatifs qui contrôle le comportement de l'opération.

Retours

NomTypeDescription
successbooleanVrai lorsque l'opération s'est terminée avec succès.
decodedany | nilValeur Luau décodée ou chaîne d'octets décodée.
errorMessagestring | nilMessage d'erreur renvoyé en cas d'échec du chargement ou de l'analyse, sinon nul.
errorPositionnumber | nilPosition où l'analyse a échoué, ou nulle lorsqu'aucune erreur d'analyse ne s'est produite.

Description

Analyse JSON sans lancer et renvoie les détails du succès, de la valeur et de l'erreur.

Appelle le avec 2 parametre(s): json, options. La table des arguments indique les valeurs requises et celles qui affinent le comportement.

Il renvoie success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil). Utilise la table des retours pour separer les valeurs reussies, les resultats nil et les erreurs recuperables.

Exemple

Analysez le JSON non fiable sans générer d'erreur.

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

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

Types

DecodeOptions

Contrôle le comportement d'analyse JSON.

useNull? boolean Représente JSON null avec la sentinelle nulle de la bibliothèque au lieu de nil.maxDepth? integer Définit la profondeur d'imbrication maximale, comprise entre 1 et 4 096.