Page 1 sur 1

[..] LECTURE RESULTAT JSON

Posté : lun. 26 sept. 2022 14:38
par CedricOffBZH
Bonjour,

Je m'efforce actuellement de créer un petit soft pour mon site sous wordpress.

Par exemple, j'utilise l'api wordpress pour récupérer des informations comme la liste des utilisateurs par exemple.
Ce wordpress utilise un plugin de réservation.
Dans les fonctionnalités de ce plugin, il est possible de créer une équipe (staff)
Je cherche à lire le résultat json de la demande de la liste staff de résa ..
Le soucis est que le résultat est dans une boucle {1{id user etc}{2{id user etc etc

Comment puis je récupérer les informations de chaque membre de staff svp ?
Je sèche un peut :(

Voici le retour json :

Code : Tout sélectionner

{"1":{"id":"1","category_id":"1","wp_user_id":"1","attachment_id":"0","full_name":"LKT","email":"ludmilla@monndd.fr","phone":"+33667135842","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"1","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"fcab6b2ecb03a819f967a1a05272b69d","icalendar_days_before":"365","icalendar_days_after":"365","color":"#1C3B7C","gateways":null},"2":{"id":"2","category_id":"2","wp_user_id":"0","attachment_id":"0","full_name":"Test staff 2","email":"staff2@monndd.fr","phone":"+336508545875","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"2","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"e720a0e268a1468b29373c3b106b7e9c","icalendar_days_before":"365","icalendar_days_after":"365","color":"#40E04C","gateways":null},"3":{"id":"3","category_id":"2","wp_user_id":"0","attachment_id":"0","full_name":"Test staff 3","email":"staff3@monndd.fr","phone":"+33650854587","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"3","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"2796ffd44c6cd7701fee1be70a1bffac","icalendar_days_before":"365","icalendar_days_after":"365","color":"#0CA059","gateways":null}}

Re: [..] LECTURE RESULTAT JSON

Posté : lun. 26 sept. 2022 18:15
par mikell
La question est incomplète. Est-ce que tu as besoin de récupérer la totalité des infos ? Et une fois les données récupérées tu veux en faire quoi ? les afficher, les écrire dans un fichier, les entrer comme données dans une gui ?

Pour faire les choses 'clean' il faudrait utiliser une des (nombreuses) UDF dédiées JSON, ça s'appelle en général "json.au3" :mrgreen:
Ou si du 'bricolage' ne te rebute pas, tu peux parser ce json toi-même à coups de regex - à condition bien sûr que le format du json soit constant, qu'il ne contienne jamais d'erreur, etc
Voilà un exemple de bricolage qui sort un tableau par user

#Include <Array.au3>

$s = '{"1":{"id":"1","category_id":"1","wp_user_id":"1","attachment_id":"0","full_name":"LKT","email":"ludmilla@monndd.fr","phone":"+33667135842","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"1","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"fcab6b2ecb03a819f967a1a05272b69d","icalendar_days_before":"365","icalendar_days_after":"365","color":"#1C3B7C","gateways":null},"2":{"id":"2","category_id":"2","wp_user_id":"0","attachment_id":"0","full_name":"Test staff 2","email":"staff2@monndd.fr","phone":"+336508545875","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"2","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"e720a0e268a1468b29373c3b106b7e9c","icalendar_days_before":"365","icalendar_days_after":"365","color":"#40E04C","gateways":null},"3":{"id":"3","category_id":"2","wp_user_id":"0","attachment_id":"0","full_name":"Test staff 3","email":"staff3@monndd.fr","phone":"+33650854587","time_zone":null,"info":"","working_time_limit":null,"visibility":"public","position":"3","google_data":null,"outlook_data":null,"zoom_authentication":"default","zoom_jwt_api_key":null,"zoom_jwt_api_secret":null,"zoom_oauth_token":null,"icalendar":"0","icalendar_token":"2796ffd44c6cd7701fee1be70a1bffac","icalendar_days_before":"365","icalendar_days_after":"365","color":"#0CA059","gateways":null}}'

$lines = StringRegExp($s, '\{([^\{\}]+)\}', 3)
;_ArrayDisplay($lines)
For $i = 0 to UBound($lines)-1
   $lines[$i] = StringReplace($lines[$i], 'null', '""')
   $tmp = StringRegExp($lines[$i], '"(.*?)":"(.*?)"', 3)
   Local $res[UBound($tmp)/2][2]
   For $k = 0 to UBound($tmp)-1 step 2
      $res[$k/2][0] = $tmp[$k]
      $res[$k/2][1] = $tmp[$k+1]
   Next
   _ArrayDisplay($res, "user " & $i+1)
Next
 

Re: [..] LECTURE RESULTAT JSON

Posté : mar. 27 sept. 2022 12:41
par CedricOffBZH
Bonjour Mikell et merci pour la prise en charge,
La question est incomplète. Est-ce que tu as besoin de récupérer la totalité des infos ?
Oui, j'aimerais récupérer toutes les infos pour une future exploitation
Et une fois les données récupérées tu veux en faire quoi ? les afficher, les écrire dans un fichier, les entrer comme données dans une gui ?
Pour le moment, juste les écrire dans un fichier .txt , je compte par la suite ajouter sqlite ...
Pour faire les choses 'clean' il faudrait utiliser une des (nombreuses) UDF dédiées JSON, ça s'appelle en général "json.au3" :mrgreen:
Ou si du 'bricolage' ne te rebute pas, tu peux parser ce json toi-même à coups de regex - à condition bien sûr que le format du json soit constant, qu'il ne contienne jamais d'erreur, etc
J'utilise l'udf json.au3, je ne suis pas fan du bidouillage. Est il possible de lire ce resultat json en utilisant les fonctions de json.au3 ?

Re: [..] LECTURE RESULTAT JSON

Posté : mar. 27 sept. 2022 15:27
par mikell
Est il possible de lire ce resultat json en utilisant les fonctions de json.au3 ?
json n'est pas ma tasse de thé mais à ce que j'ai pu voir, l'UDF te permet de sortir les données dans plusieurs formats exploitables par les fonctions intégrées d'AutoIt (dont les fonctions SQLite* )
Comme il n'y a pas d'explications dans l'UDF il faut lire les sujets dédiés sur le forum US

Re: [..] LECTURE RESULTAT JSON

Posté : lun. 03 oct. 2022 13:37
par jchd
SQLite comporte une extension, maintenant partie des DLL Windows précompilées, qui permet d'extraire ce qu'on veut d'un JSON sans outillage extérieur.

Voir https://www.sqlite.org/json1.html

Re: [..] LECTURE RESULTAT JSON

Posté : mer. 12 oct. 2022 10:51
par jpascal
Un grand merci pour cette info. :-)