Aller au contenu

Le format JSON

JSON (JavaScript Object Notation) est un format créé pour faciliter l'échange de données entre différents systèmes. Bien que grandement inspiré de la notation objet de JavaScript le format JSON est indépendant de tout langage et peut être interpréter par la majorité des différents langage de programmation.

Structure de base

Les deux structures suivantes sont utilisées pour construire notre JSON :

L'objet

Une suite d'éléments clé/valeurs, sérarés par une virgule. L'objet sera entouré par des accolades.

{
    "cle1" : "valeur1",
    "cle2" : "valeur2"
}
object

Le tableau

Une suite d'éléments ordonnés, séparée par une virgule et entourée par des crochets [ ]

["valeur1", "valeur2"]
array

On peut mélanger les deux structures sans problème (un tableau d'objet, une valeur de l'objet est un tableau, etc.)

{
    "cle1" : [
        "valeur1", 
        "valeur2"
    ],
    "cle2" : "valeur2"
}

Il est aussi possible d'avoir un objet ou un tableau vide, qu'on notera respectivement { } et [ ].

Liste des valeurs possibles

  • string : du texte entouré de guillemets "
  • number : sans les guillemets, on peut utiliser les décimales avec le point et les exposants avec le caractère e.
  • object : comme vu plus haut, liste de clé/valeur entourées par des accolades
  • array : liste d'items entourés de crochet
  • boolean : utilisez true ou false sans guillemets et en minuscule
  • valeur nulle : null sans guillemets et en minuscule

value

Note sur les dates : Le format date n'étant pas pleinenement supporté, on devrait par précaution les stocker en texte.

Valider un texte au format JSON

JSONLint est un petit outils en ligne très pratique pour valider qu'un texte respecte le format JSON : www.jsonlint.com

Utilisation en JavaScript

JSON.stringify()

La méthode la plus simple pour envoyer des données au format JSON est de convertir un objet JavaScript avec la fonction JSON.stringify().

JSON.parse()

Les données qu'on reçoit au format JSON sont sous forme de texte. Pour les utiliser facilement en JavaScript on va les convertir en objet avec la fonction JSON.parse().

JSON.js
// Objet JavaScript à convertir en JSON
const usager = {prenom: "Mathieu", nom: "Frechette", age:43, cours:["Services Web", "Conception de systèmes"]};
// Convertir l'objet JavaScript en JSON avec JSON.stringify()
const jsToJSON = JSON.stringify(usager);

console.log('reponseJson: ', jsToJSON); // {"prenom":"Mathieu","nom":"Frechette","age":43,"cours":["Services Web","Conception de systèmes"]}

// Convertir le JSON en objet JavaScript avec JSON.parse()
const objJS = JSON.parse(jsToJSON);

console.log('Nom: ', objJS.prenom + ' ' + objJS.nom); // Nom: Mathieu Frechette

Sources