JT28 Posté(e) le 12 mai 2016 Signaler 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.
pepite Posté(e) le 13 mai 2016 Signaler 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
JT28 Posté(e) le 13 mai 2016 Auteur Signaler 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 '\'
pepite Posté(e) le 13 mai 2016 Signaler Posté(e) le 13 mai 2016 Excellent @Lazer, j'ai encore appris qqch ;-) merciii
JT28 Posté(e) le 13 mai 2016 Auteur Signaler Posté(e) le 13 mai 2016 Salut @Lazer, j'ai toujours une erreur [ERROR] 10:46:22: line 13: '' expected near '['
Lazer Posté(e) le 13 mai 2016 Signaler 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
JT28 Posté(e) le 13 mai 2016 Auteur Signaler 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
Messages recommandés