JT28 Posté(e) le 12 mai 2016 Signaler Partager Posté(e) le 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 13 mai 2016 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
JT28 Posté(e) le 13 mai 2016 Auteur Signaler Partager Posté(e) le 13 mai 2016 Salut pepite, je viens de tester et j'ai toujours une erreur [ERROR] 09:44:08: line 13: unexpected symbol near '\' Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 13 mai 2016 Signaler Partager Posté(e) le 13 mai 2016 respdecode.["All Data"].SETP Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 13 mai 2016 Signaler Partager Posté(e) le 13 mai 2016 Excellent @Lazer, j'ai encore appris qqch ;-) merciii Lien vers le commentaire Partager sur d’autres sites More sharing options...
JT28 Posté(e) le 13 mai 2016 Auteur Signaler Partager Posté(e) le 13 mai 2016 Salut @Lazer, j'ai toujours une erreur [ERROR] 10:46:22: line 13: '' expected near '[' Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 13 mai 2016 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
JT28 Posté(e) le 13 mai 2016 Auteur Signaler Partager Posté(e) le 13 mai 2016 Cool ça marche. Merci pour le lien et votre aide. J'ai fait ça : local responseitem1 = respdecode[ 'All Data' ].SETP; 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés