Talwayseb Posté(e) le 18 mars 2018 Signaler Partager Posté(e) le 18 mars 2018 Bonsoir à tous !!! J'ai un petit souci... je n'arrive pas à formater ce code tableau : "lights": [ "1", "6", "7", "8", "9" ], Quand j'essaye de récupérer la réponse , j'obtiens soit table: 0x8a415c0, soit une erreur... bad argument #1 to 'decode' (string expected, got table) Quelqu'un à la solution ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 19 mars 2018 Signaler Partager Posté(e) le 19 mars 2018 Bonjour, Je pense que tu dois utiliser : - json.encode(variable) - json.decode(variable) ;-) 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Talwayseb Posté(e) le 19 mars 2018 Auteur Signaler Partager Posté(e) le 19 mars 2018 Merci @pepite !!! Comme je devais décoder la table, Je m'efforçai à utiliser json.decode, c'est ce qui me provoqué l'erreur : bad argument #1 to 'decode' (string expected, got table) Avec json.encode, c'est mieux !!! 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Talwayseb Posté(e) le 24 mars 2018 Auteur Signaler Partager Posté(e) le 24 mars 2018 Salut à tous !!! Je n'arrive pas à formater les strings de mon tableau {"1","6","7","8","9"} en entier {1,6,7,8,9} Avez-vous une idée pour supprimer les "" ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 24 mars 2018 Signaler Partager Posté(e) le 24 mars 2018 tonumber ca ne fonctionne pas ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Talwayseb Posté(e) le 25 mars 2018 Auteur Signaler Partager Posté(e) le 25 mars 2018 @pepite, Pas avec un tableau... J'espérai y arriver avec string.format mais je ne trouve pas la bonne formule... Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 25 mars 2018 Signaler Partager Posté(e) le 25 mars 2018 Tu veux convertir TOUT le tableau ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Talwayseb Posté(e) le 25 mars 2018 Auteur Signaler Partager Posté(e) le 25 mars 2018 (modifié) Si possible, oui !!! Voici ce que je voudrai arriver à faire : -- Récupération des ID des Lampes du groupe HueLampes = jsonTable.lights fibaro:debug("HueLampes = " .. tostring(HueLampes)); -- Résultat : HueLampes = table: 0x9f7d770 -- Récupération du Nombre de Lampes NbreLampes = tonumber(#HueLampes) fibaro:debug("Nombre de lampe = " .. tonumber(NbreLampes)); -- Résultat : Nombre de lampe = 5 -- Décodage des ID des Lampes du groupe Lamp = json.encode(HueLampes) fibaro:debug("Lamp = " .. tostring(Lamp)); -- Résultat : Lamp = ["1","6","7","8","9"] -- Formatage de la Table Lamp = string.sub(Lamp,2,-2) Lamp = "{" .. Lamp .. "}" fibaro:debug("Lamp = " .. tostring(Lamp)); -- Résultat : Lamp = {"1","6","7","8","9"} -- Résultat voulu : Lamp = {1,6,7,8,9} -- Avec ce formatage le reste du code marche !!! -- Boucle RM états des Lampes strAffiche = "" i = 1 while i <= NbreLampes do HueLampeId = Lamp[i] fibaro:debug("HueLampeId = " .. tostring(HueLampeId)); if HueLampeId ~= nil then -- HTTP GET, pour récupérer toutes les informations du groupe de lampes Hue response = HueCMD:GET('/api/'..HueUser..'/lights/'..tostring(HueLampeId)); jsonTable = json.decode(response) if tostring(jsonTable.state.on) == "true" and tostring(jsonTable.state.reachable) == "true" then strAffiche = strAffiche .. "On" RM = "On" elseif tostring(jsonTable.state.on) == "false" and tostring(jsonTable.state.reachable) == "true" then strAffiche = strAffiche .. "Off" RM = "Off" else strAffiche = strAffiche .. "N/A" RM = "N/A" end fibaro:debug("La Lampe Hue n° " .. tostring(HueLampeId) .. " est " .. tostring(RM)); i = i + 1 -- on incrémente i fibaro:debug("Affiche = " .. tostring(strAffiche)); else strAffiche = "N/A" fibaro:debug("Affiche = N/A"); break end end -- Mise à jour des valeurs des Labels du VD fibaro:call(ID, "setProperty", "ui.RmLampes.value", strAffiche) As-tu une solution ? Modifié le 25 mars 2018 par Talwayseb Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 mars 2018 Signaler Partager Posté(e) le 25 mars 2018 HueLampes = jsonTable.lights for _, v in ipairs(HueLampes) do HueLampeId = tonumber(v) ... end Voilà comment je ferais ma boucle pour être le plus optimal possible. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Talwayseb Posté(e) le 25 mars 2018 Auteur Signaler Partager Posté(e) le 25 mars 2018 Merci @Steven !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 25 mars 2018 Signaler Partager Posté(e) le 25 mars 2018 Et ben voilà :-) suffisait de demander ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés