11 septembre 2020
publié par 

Il est quelque fois nécessaire de changer de format de données. Si on reçoit par exemple une réponse de WebService au format XML et que l'on doit passer en paramètre à une fonction ce même résultat au format JSON.

Plutôt que de déclarer les structures correspondantes, je vous propose une fonction générique qui parcours le contenu XML pour le convertir en JSON.

 

// Résumé : Converti un donnée XML en donnée JSON

// Syntaxe :

//[ <Résultat> est un JSON = ] XMLVersJSON (<ObjetXML> est xmlDocument)

//

PROCÉDURE XMLVersJSON(ObjetXML est un xmlDocument)

 

 

// Création des éléments de l'objet JSON

ObjetJSON est un JSON

 

// Liste des Noeuds de l'objet XML qui seront convertis en XML

ListeMembres(ObjetXML..NoeudRacine[1],ObjetJSON)

 

 

 

PROCÉDURE INTERNE ListeMembres(_ObjetXML est un xmlNoeud,_ObjetJSON est un JSON)

tabJSON est un tableau de JSON

// Parcours des noeuds

POUR TOUT UnNoeud DE _ObjetXML..NoeudFils

// Pour chaque Noeud on ajoute un membre JSON et on rappelle la fonction

UnMembreJSON est un JSON

UnMembreJSON..Nom=UnNoeud..Nom

SI UnNoeud..Texte="" ALORS

soit ind = TableauAjoute(_ObjetJSON..Membre,UnMembreJSON)

ListeMembres(UnNoeud,_ObjetJSON..Membre[ind])

SINON

SI UnNoeud..Nom = "element" ALORS

// C'est un tableau

TableauAjoute(tabJSON,UnNoeud..Texte)

SINON

// C'est un membre simple

UnMembreJSON..Valeur=UnNoeud..Texte

TableauAjoute(_ObjetJSON..Membre,UnMembreJSON)

 

FIN

FIN

FIN

//si un Tableau est en attente, on l'Ajoute

SI tabJSON..Occurrence<>0 ALORS

TableauAjoute(_ObjetJSON,tabJSON)

FIN

FIN

 

 

RENVOYER ObjetJSON

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée