MAM78 408 Signaler ce message Posté(e) 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é 18 janvier 2019 par MAM78 Partager ce message Lien à poster Partager sur d’autres sites
Barelle 167 Signaler ce message Posté(e) 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) Partager ce message Lien à poster Partager sur d’autres sites
MAM78 408 Signaler ce message Posté(e) 18 janvier 2019 Super tu es un chef. Merci Partager ce message Lien à poster Partager sur d’autres sites