[..] LECTURE RESULTAT JSON

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
CedricOffBZH
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 26 sept. 2022 14:14
Status : Hors ligne

[..] LECTURE RESULTAT JSON

#1

Message 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}}
Avatar du membre
mikell
Modérateur
Modérateur
Messages : 6217
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] LECTURE RESULTAT JSON

#2

Message 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
 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
CedricOffBZH
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 26 sept. 2022 14:14
Status : Hors ligne

Re: [..] LECTURE RESULTAT JSON

#3

Message 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 ?
Avatar du membre
mikell
Modérateur
Modérateur
Messages : 6217
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] LECTURE RESULTAT JSON

#4

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2255
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] LECTURE RESULTAT JSON

#5

Message 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
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
jpascal
Niveau 6
Niveau 6
Messages : 201
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

Re: [..] LECTURE RESULTAT JSON

#6

Message par jpascal »

Un grand merci pour cette info. :-)
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Répondre