Aller au contenu

Aide Sur Le Traitement D'un Tableau En Json Via Lua


Messages recommandés

Posté(e)

Bonjour,

Je débute sur le lua depuis qques jours et je m'attaque à  la communication entre mon eedomus et ma HC2.

Je souhaite traiter un tableau en json renvoyé par l'eedomus de la forme suivante : 

{ "success": 1, "body":[{"periph_id": "36848", "name": "Temperature multisensor Salon", "last_value": "24.6", "last_value_text": "", "last_value_change": "2014-08-22 21:43:58"}, {"periph_id": "46902", "name": "Température [ambiante] Sejour", "last_value": "22", "last_value_text": "", "last_value_change": "2014-08-22 21:23:44"}, {"periph_id": "74039", "name": "Température [ambiante] Couloir", "last_value": "24", "last_value_text": "", "last_value_change": "2014-08-22 21:49:02"}, {"periph_id": "85366", "name": "Température motion Sejour", "last_value": "24.2", "last_value_text": "", "last_value_change": "2014-08-22 21:46:55"}]}

 

Je n'ai pas trouvé dans les tutos ni dans la recherche la façon de mettre le tableau json dans un tableau exploitable pour le LUA pour en ressortir les données.

J'arrive à  interroger et à  exploiter lorsque ce n'est pas une forme de tableau (interrogation d'un prériph).

Avez-vous un lien avec un exemple à  me donner ?

 

Nico33

Posté(e)

J'obtiens une erreur :

[ERROR] 23:56:07: line 12: Expected value but found invalid escape code at character 4711

 
 
Je précise que la ligne 12 est celle qui fait le json.decode :
fibaro:log("Appel lancé")
HC2 = Net.FHttp("api.eedomus.com")
response, status, errorcode = HC2:GET("/get?action=periph.caract&periph_id=all&api_user=aaaaaa&api_secret=abcd")
 
local monTableau = json.decode(response)
 
Je précise aussi que le json obtenu est très long car c'est tous les périphs de mon eedomus.
Pb de taille du json ?
Posté(e)

oui c'est bien possible...Soit le json est mal-formé soit l'eedomus retourne un flux "chunked" et cela pose des problèmes pour FHttp et la solution est l'utilisation de FTcpSocket et d'un buffer...

×
×
  • Créer...