MAM78 Posté(e) le 18 janvier 2019 Signaler Posté(e) le 18 janvier 2019 (modifié) J'ai un souci relativement bizarre, dans un VD lorsque j'essai d'encoder une variable tableau, j'ai une erreur lors du deuxième encodage alors que le premier fonctionne bien : Voici mon code : local Tableau = {} for i= 1 , 3 do Tableau["Test"..i] = i end fibaro:debug("Encodage1="..json.encode(Tableau)) local HC2 = Net.FHttp("127.0.0.1",11111) local response = HC2:GET("/api/virtualDevices/"..fibaro:getSelfId()) local status, json = pcall(function() return json.decode(response) end) fibaro:debug("Encodage2="..json.encode(Tableau)) J'obtiens le résultat suivant : [DEBUG] 13:19:58: Encodage1={"Test3":3,"Test1":1,"Test2":2} [ERROR] 13:19:58: line 11: attempt to call field 'encode' (a nil value) L'erreur se produit dès que je positionne le deuxième encodage après une fonction d'encodage. Ca fait des heures que je recherche la cause et je ne trouve pas. Auriez-vous une idée de l'origine de ce problème et la solution ? Modifié le 18 janvier 2019 par MAM78
Barelle Posté(e) le 18 janvier 2019 Signaler Posté(e) le 18 janvier 2019 La ligne : local status, json = pcall(function() return json.decode(response) end) déclare la variable json qui ne possède pas la méthode encode utilisée dans l'affichage Encodage2. En lui donnant un autre nom, toto par exemple, cela fonctionne: local status, toto = pcall(function() return json.decode(response) end)
MAM78 Posté(e) le 18 janvier 2019 Auteur Signaler Posté(e) le 18 janvier 2019 Super tu es un chef. Merci
Messages recommandés