PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → MembreVariant  Android json
MembreVariant Android json
Started by Frederic, Apr., 18 2018 7:43 PM - 4 replies
Registered member
51 messages
Posted on April, 18 2018 - 7:43 PM
Bonjour à tous

Sur une tablette sous os android , Je suis entrain d essayer de convertir des chaines JSON que je récupère suite à des requette http .
Je cherche a les décoder . Ma première idée a été d essayer de les traiter avec le type Variant et MembreVariant .
Dans la doc en ligne MembreVariant est bien sous Android et dans Windev Mobile 23 on m indique gentiment que c est pas encore disponible .

Quelqu un aurais une idée pour m aiguiller sur le meilleur chemin pour réaliser le décodage .

Merci

Exemple


{"sync_enabled": true, "groups": [{"count": 1, "groupName": "Unsecured 200", "groupId": 200, "network": null}, {"count": 2, "groupName": "Unsecured 201", "groupId": 201, "network": null}], "sensors": [{"11. Last Update": 1524073129.183764, "02. Name": "XSensor", "04. Lux": [65535, 46], "12. Adv Interval": 0.0, "01. Device ID": "1000", "00. Index": 0, "03. Device": null, "07. supply_voltage": 48.16, "08. Humidity": 45, "10. status": 0, "09. signal_strength": -77, "05. Motion": [1524069810.052111, null, null, null], "NetworkName": null, "06. Temperature": 29}], "networks": [], "temperature": 60.1, "sys_uptime": "0d05h56m02s", "uptime": "0d04h46m18s", "network": null, "gateway_up": true, "connectable": true, "devices": [{"05. Power": 0.4, "11. Last Update": 1524073129.861572, "02. Name": "XIM19803013A6A", "12. Adv Interval": 0.0, "01. Device ID": "2", "08. on_hours": 40, "03. Device": "XIM19803013A6A", "07. supply_voltage": 47.75, "06. Tc temperature": 29, "NetworkName": null, "00. Index": 0, "10. status": 132, "09. signal_strength": -58, "04. Intensity": 1.0}, {"05. Power": 0.4, "11. Last Update": 1524073130.455278, "02. Name": "XIM19803013A6A", "12. Adv Interval": 0.0, "01. Device ID": "1", "08. on_hours": 43, "03. Device": "XIM19803013A6A", "07. supply_voltage": 47.67, "06. Tc temperature": 29, "NetworkName": null, "00. Index": 0, "10. status": 132, "09. signal_strength": -63, "04. Intensity": 1.0}], "sys_time": "2018-04-18 19:38:51 CEST (+0200)"}

--
Merci .
Cordialement

FDU
Posted on April, 19 2018 - 1:55 PM
contrairement a l'aide les variants ne sont pas disponible sous Android
mais en gérant des chaînes de caractère
et des extraction de chaînes tu devrai t'en sortir
les fonctions JSON ne sont pas nécessaire dans ton cas
Registered member
51 messages
Posted on April, 19 2018 - 7:09 PM
Bonjour ,

merci pour ta réponse . mais j espérait éviter de tout ré écrire .

--
Merci .
Cordialement

FDU
Posted on April, 19 2018 - 8:24 PM
Bonjour ,
Ce dode la marche pour moi sur windev mobile 23
activepack_req.URL="http://xxxxxxxxxxxx/services_esn.php/query-balance/"


activepack_req.Méthode=httpGet
activepack_req.ContentType="application/x-www-form-urlencoded"

activepack_resp=RESTEnvoie(activepack_req)

MonTableau est un Variant
QUAND EXCEPTIONEXCEPTION DANS

MonTableau=JSONVersVariant(activepack_resp.Contenu)
FAIRE
Erreur("Erreur interne")

SINON
Info("MonTableau.result.data..Valeur")
FIN


voici le contenu en JSON de activepack_resp.Contenu :
{
"result": {
"code": "400",
"status": "Invalid Token",
"data": "Code invalide"
}
}
Registered member
352 messages
Popularité : +12 (18 votes)
Posted on April, 20 2018 - 12:21 PM
Ce n'est pas
MonTableau=JSONVersVariant(activepack_resp.Contenu)

mais
MonTableau=JSONVersVariant(activepack_resp..Contenu)