JT28 7 Signaler ce message Posté(e) 12 mai 2016 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
pepite 1 272 Signaler ce message Posté(e) 13 mai 2016 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
JT28 7 Signaler ce message Posté(e) 13 mai 2016 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
Lazer 8 477 Signaler ce message Posté(e) 13 mai 2016 respdecode.["All Data"].SETP Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 13 mai 2016 Excellent @Lazer, j'ai encore appris qqch ;-) merciii Partager ce message Lien à poster Partager sur d’autres sites
JT28 7 Signaler ce message Posté(e) 13 mai 2016 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
Lazer 8 477 Signaler ce message Posté(e) 13 mai 2016 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
JT28 7 Signaler ce message Posté(e) 13 mai 2016 Cool ça marche. Merci pour le lien et votre aide. J'ai fait ça : local responseitem1 = respdecode[ 'All Data' ].SETP; 2 Partager ce message Lien à poster Partager sur d’autres sites