Aller au contenu
JT28

Probleme De Lua (Json.decode)

Recommended Posts

Bonjour, j'ai un problème avec le code json de mon poêle Palazzetti.

 

Je récupère bien les valeurs de la premiere partie, par exemple "RSP": "OK", mais pas celles après "All Data": à  cause de l'espace entre All et Data.

 

J'ai donc une erreur lua sur cette ligne: 

local responseitem1 = respdecode.All Data.SETP;

Y a t'il une solution pour contourner ce problème ?

 

Ci-dessous mon code de test :

-- Test json

local resp = '{	"Info": { "RSP": "OK", "TS": "2016-05-12 00:40:17"	},	"All Data": { "MBTYPE":	 0,	"MAC": "78:25:44:XX:XX:XX",	"MOD": 307,	"VER": 45, "FWDATE": "2015-12-10", "STOVE_DATETIME": "2016-05-12 00:40:47",	"STOVE_WDAY": 4, "STATUS":	0, "SETP": 20.0, "PUMP_RATE": 0, "PELLET_QTUSED": 17, "FAN_FAN1V": 0, "FAN_FAN1RPM": 0,	"FAN_FAN2LEVEL": 2, "FAN_FAN2V": 0, "POWER": 2, "FEEDER": 0.0, "DP_TARGET": 0, "DP_PRESS": 21, "IN_I01": 1, "IN_I02": 0, "IN_I03": 1, "IN_I04":	 1, "OUT_O01": 0, "OUT_O02": 0, "OUT_O03": 0, "OUT_O04": 0,	"OUT_O05": 0, "OUT_O06": 0, "OUT_O07": 0, "TMP_ROOM_WATER": 21.2, "TMP_PELLET_BACKW": 22.5, "TMP_EXHAUST": 22.0, "TMP_CC": 0.0, "TMP_ROOM_IDRO": 0.0 }}';

local respdecode = json.decode(resp);

local responseitem = respdecode.Info.RSP;
fibaro:debug(responseitem);


local responseitem1 = respdecode.All Data.SETP;
fibaro:debug(responseitem1);

Merci d'avance aux pros du Lua.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Je n'ai jamais été confronté à  cela, mais naturellement j'aurais tenté ca

local responseitem1 = respdecode.All\ Data.SETP;

ou en lua l'"espace" avec les chaines s'ecrit \b

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut pepite, je viens de tester et j'ai toujours une erreur

[ERROR] 09:44:08: line 13: unexpected symbol near '\'

Partager ce message


Lien à poster
Partager sur d’autres sites


respdecode.["All Data"].SETP

Partager ce message


Lien à poster
Partager sur d’autres sites

Excellent @Lazer, j'ai encore appris qqch ;-)

merciii

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Lazer, j'ai toujours une erreur

[ERROR] 10:46:22: line 13: '' expected near '['

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaye avec des simples quotes à  la place des doubles quotes

 

je n'ai pas de HC2 pour tester, mais tu peux chercher facilement sur Google, par exemple => http://stackoverflow.com/questions/8317982/access-javascript-object-with-space-in-key

Partager ce message


Lien à poster
Partager sur d’autres sites

:13: Cool ça marche. Merci pour le lien et votre aide.

 

J'ai fait ça :

local responseitem1 = respdecode[ 'All Data' ].SETP;
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

×