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éparés par une virgule. Ces élements sont insérés entre une paire d'accolades pour définir un objet.

{
    "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és/valeurs entre accolades
  • array : liste d'items entre crochets
  • boolean : utilisez true ou false sans guillemets et en minuscule
  • valeur nulle : null sans guillemets et en minuscule

value

Note sur les dates : Il n'y a pas de format standard pour les dates dans JSON, il faut les stocker en texte. Par contre, la plupart des langages/librairies utilisant JSON vont utiliser le format ISO 8601 pour formatter une date sous form de chaine de caractères. C'est le cas de Javascript: JSON.stringify(new Date()) va générer la date pour l'instant présent sour forme de texte suivant ISO 8601.

Valider un texte au format JSON

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

VSCode effectue une validation du JSON dans les fichiers avec l'extension .json.

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