DrPepper Posté(e) le 2 juillet 2019 Signaler Posté(e) le 2 juillet 2019 Bonjour à tous ! Je cherche à modifier mon code actuel (désolé si je suis dans la mauvaise section) ... Je cherche à remplacer ce code : api.post('/mobile/push',{ ["message"]=push.message, ["mobileDevices"]={push.id}, ["title"]=tostring(push.titre), ["category"]='RUN_CANCEL', ["data"]={["sceneId"]=push.idScene} }) par : api.post('/mobile/push',push) où push serait une table que je construis avant : local push = {} Sauf que je n'arrive pas à insérer les valeurs dans cette table push ... Avez vous une idée ? table.insert(push, .........) Là, je sèche un peu. Je veux bien un peu d'aide !
jjacques68 Posté(e) le 3 juillet 2019 Signaler Posté(e) le 3 juillet 2019 (modifié) il faudrait chercher je pense du côté des tables JSON avec encode/decode sans avoir tester un truc du genre : local push = { ["message"]=push.message, ["mobileDevices"]={push.id}, ["title"]=tostring(push.titre), ["category"]='RUN_CANCEL', ["data"]={["sceneId"]=push.idScene} } api.post('/mobile/push',json.encode(push)) Modifié le 3 juillet 2019 par jjacques68 1
DrPepper Posté(e) le 3 juillet 2019 Auteur Signaler Posté(e) le 3 juillet 2019 Je vais faire le test, mais la question est plus comment je fait des inserts de lignes dans le tableau, puisque je veux déclarer une fois un tableau vide en début de code, et ensuite ajouter ligne par ligne ? C'est plus cela ma question !
pepite Posté(e) le 4 juillet 2019 Signaler Posté(e) le 4 juillet 2019 Bonjour, Est-cela que tu veux faire ? Citation local push = {} push.message = "Bienvenue" table.insert(push,push.message) for i,v in ipairs(push) do print(v) end print("---------") push.id = 92 table.insert(push, push.id) for i,v in ipairs(push) do print(v) end print("---------") push.titre = "Attention Attention !!" table.insert(push, push.titre) for i,v in ipairs(push) do print(v) end print("---------") Debug Citation Bienvenue --------- Bienvenue 92 --------- Bienvenue 92 Attention Attention !! ---------
Lazer Posté(e) le 4 juillet 2019 Signaler Posté(e) le 4 juillet 2019 Le table.insert(), je pense que ce n'est utile que si tu veux insérer un élément à un endroit précis du tableau, donc entre 2 éléments déjà existants dans le tableau. C'est assez rare d'avoir besoin de respecter un ordre bien précis... D'autant plus que plusieurs instructions en LUA comme les boucles for ... in pairs(...) n'en tiennent pas compte et mélangent d'elles mêmes l'ordre des éléments. Dans le cas présent, tu te moques de l'ordre des éléments, donc tu peux les définir directement comme ceci, ça devrait fonctionner (pas testé) : local push = {} push.message = "Hello World" push.mobileDevices = {} push.mobileDevices[1] = 127 push.title = "Titre" push.category = 'RUN_CANCEL' push.data = {} push.data.sceneId = 73 api.post('/mobile/push', push) Note : pas besoin de json.encode() avec la fonction api.post(), on lui donne directement un tableau, et il s'occupera en interne de faire le json.encode pour générer la requête complète vers l'API. 1
pepite Posté(e) le 4 juillet 2019 Signaler Posté(e) le 4 juillet 2019 Je n'ai mis le table.insert() que pour lui montrer le fonctionnement vu sa question et la boucle pour lui montrer le debug :-).Envoyé de mon BND-L21 en utilisant Tapatalk 1
pepite Posté(e) le 4 juillet 2019 Signaler Posté(e) le 4 juillet 2019 Envoyé de mon BND-L21 en utilisant Tapatalk
DrPepper Posté(e) le 9 juillet 2019 Auteur Signaler Posté(e) le 9 juillet 2019 Merci de vos réponse, mais cela ne marche pas. C'est pourtant ce que j'avais essayé avant.
pepite Posté(e) le 9 juillet 2019 Signaler Posté(e) le 9 juillet 2019 Bonjour, Qu est ce qui ne fonctionne pas? L api.post ? Envoyé de mon BND-L21 en utilisant Tapatalk
DrPepper Posté(e) le 10 juillet 2019 Auteur Signaler Posté(e) le 10 juillet 2019 Oui, je n'arrive pas à créer par implémentation (inset ou autre) un tableau équivalent à : local push = { ["message"]=push.message, ["mobileDevices"]={push.id}, ["title"]=tostring(push.titre), ["category"]='RUN_CANCEL', ["data"]={["sceneId"]=push.idScene} } Car cela, ci-dessous, ca marche pas, il faut les ["truc"] : local push = {} push.message = "Hello World" push.mobileDevices = {} push.mobileDevices[1] = 127 push.title = "Titre" push.category = 'RUN_CANCEL' push.data = {} push.data.sceneId = 73 api.post('/mobile/push', push)
Lazer Posté(e) le 10 juillet 2019 Signaler Posté(e) le 10 juillet 2019 Dans ce cas rajoute les ["truc"] et ça devrait être bon 1
Messages recommandés