Aller au contenu principal

Charger une table depuis un texte sérialisé (table.load_string)

Déclaration

table_associee = table.load_string(texte_table)

Paramètres

  • Texte de la table
    Type texte, texte de la structure arborescente sérialisée de la table ; il ne peut contenir que des données statiques et aucun code dynamique

Valeur renvoyée

  • Table associative
    Type table ou nil, renvoie la structure de la table en cas de réussite du chargement et nil en cas d’échec

Description

Convertit la description textuelle de la structure arborescente en objet table
Dans une certaine mesure, table.load_string peut être considéré comme la fonction inverse de table.deep_dump (son utilité réelle dépend de l’existence de références circulaires ou de types référencés qui ne sont pas des tables)
Contrairement à load, cette fonction n’exécute pas le code contenu dans le texte et ne lit que les données statiques
L’exemple ci-dessous contient du code exécutable ; après son exécution, b vaut nil (le code n’est pas exécuté)

b = table.load_string[[ {
a = os.execute('reboot'), -- Ce code ne sera pas exécuté et renverra nil
} ]]

Exemple

local t = table.load_string[[ {
a = 1,
b = 2,
c = 3,
} ]]
sys.alert(t.b)

Remarque : le code ci-dessus utilise la fonction hors de ce chapitre sys.alert