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