Transformer XML en JSON

Comme vous le savez, AJAX est l’acronyme de Asynchronous JavaScript and XML. Personnellement, je n’ai jamais jamais fait d’AJAX au sens précis du terme. Par contre, j’ai déjà fait un peu d’AJAPT (Asynchronous JavaScript and Plain Text) et beaucoup d’AJAJ (Asynchronous JavaScript and JSON).

En effet, le XML est une calamité à parser en JavaScript (même si certains outils tels jQuery permettent de faciliter le processus). Par contre, des formats comme le texte brut ou, mieux, le JSON sont beaucoup plus appropriés pour ce genre de tâches.

Mais c’est quoi JSON encore ?

C’est mon meilleur ami du moment !

JSON (JavaScript Object Notation) est un format de données générique qui utilise la notation des objets JavaScript pour transmettre de l’information structurée (source : Wikipédia).

En voici un exemple :

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

L’énorme point fort de JSON est qu’il est lui-même du JavaScript, ce qui le rend très facile à manipuler avec ce langage.

Le framework Prototype l’a d’ailleurs bien compris et propose plusieurs méthodes permettant de travailler avec JSON (depuis la version 1.5.1)

Toutefois, si vous êtes quand même obligés de travailler avec du XML (provenant d’un Web Service, par exemple), sachez qu’il existe plusieurs techniques pour transformer XML en JSON (pas forcément côté serveur).

Pour ma part, j’en ai retenues deux…

Parker & Badger

BadgerFish est une convention permettant de traduire un fichier XML en un objet JSON.

Parker est une feuille de style XSLT permettant de transformer XML en JSON. Je préfère cette dernière méthode car le résultat obtenu respecte mieux le format JSON que BadgerFish (qui donne un résultat en JSON mais présentant une structure à la sauce XML).

Ce n’est bien entendu que mon pauvre avis personnel ! Les deux méthodes sont excellentes et fonctionnent relativement bien. Au développeur à utiliser l’une ou l’autre en fonction de ses préférences, de ses habitudes et de ses contraintes !

Merci à JFH qui a inspiré cet article !

2 Comments

  1. najjar's avatar najjar says:

    bonjour
    peut on manipuler des bases de donnees en utilisant JSON ?

    Like

  2. FuriouZz's avatar FuriouZz says:

    Avec MongoDB, il y a probablement moyen oui =)

    Like

Leave a reply to FuriouZz Cancel reply