Comprendre le JSON

Définition

JSON (JavaScript Object Notation) est un format léger, textuel et structuré, utilisé pour représenter et échanger des données entre applications, notamment sur le web. Il est lisible par l’humain et facilement exploitable par les machines

JSON est un format incontournable pour l’échange de données. Sa syntaxe simple, sa compatibilité multi-langages et son usage massif dans les API en font un outil essentiel pour tout développeur web ou data. Maîtriser la lecture, l’écriture et la manipulation du JSON est une compétence fondamentale aujourd’hui

Syntaxe

Un petit exemple:

{
  "nom": "Dupont",
  "age": 35,
  "estEmploye": true,
  "languesParlees": ["français", "anglais"],
  "adresse": {
    "rue": "12 rue de Paris",
    "ville": "Lyon"
  }
}

Types de Données JSON

Type Exemple Description Chaîne “nom”: “Alice” Texte entre guillemets Nombre “age”: 30 Entier ou décimal Booléen “actif”: true true ou false Objet “adresse”: { … } Structure clé-valeur imbriquée Tableau “amis”: [“Bob”, “Eve”] Liste de valeurs Null “telephone”: null Absence de valeur

Pourquoi le JSON et pas un autre language (XML par exemple)

JSON s’impose grâce à sa simplicité, sa légèreté, sa rapidité, son interopérabilité et son adoption massive dans l’écosystème du développement moderne. Ces avantages en font le format privilégié pour l’échange de données, notamment dans les API et les applications web

JSON est aujourd’hui plus populaire que XML principalement en raison de sa simplicité, de sa légèreté et de sa compatibilité avec les technologies modernes. Sa syntaxe claire et concise le rend beaucoup plus facile à lire, à écrire et à maintenir que XML, qui repose sur une structure de balises plus complexe et verbeuse. Cette simplicité réduit la taille des fichiers, accélère la transmission des données et facilite le débogage.

JSON est également mieux intégré dans la plupart des langages de programmation actuels, notamment JavaScript, ce qui a favorisé son adoption massive dans le développement web et les API modernes. Sa structure clé/valeur s’adapte naturellement à la manipulation d’objets et de listes, ce qui répond aux besoins des applications web et mobiles actuelles.

Enfin, JSON offre de meilleures performances en termes de sérialisation, de désérialisation et de traitement, tout en étant plus sûr à analyser que XML, qui peut présenter des risques de sécurité spécifiques comme les attaques via DTD. Ces avantages expliquent pourquoi JSON a supplanté XML comme format d’échange de données privilégié dans la grande majorité des applications et services web

Exemple:

En JSON

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

En XML

<menu id="file" value="File">
  <popup>
    <menuitem value="New" onclick="CreateNewDoc()"/>
    <menuitem value="Open" onclick="OpenDoc()"/>
    <menuitem value="Close" onclick="CloseDoc()"/>
  </popup>
</menu>

Cet exemple montre comment une structure hiérarchique de données (un menu avec des éléments) est représentée en JSON (paires clé/valeur et tableaux) et en XML (balises imbriquées et attributs).

Sérialisation et Désérialisation

Manipulation de JSON dans les Langages

En JavaScript :

const jsonString = '{"nom": "Alice", "age": 30}';

const obj = JSON.parse(jsonString); // Désérialisation
const newJson = JSON.stringify(obj); // Sérialisation

En Python :

import json

json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)  # Désérialisation
json_str = json.dumps(data)     # Sérialisation

En PHP:

$json = '{"nom":"Alice","age":30}';

$obj = json_decode($json); // Désérialisation
$json2 = json_encode($obj); // Sérialisation

Vérifier que le JSON est bien formé

Avant toute validation avancée, il faut s’assurer que le fichier respecte la syntaxe JSON (guillemets doubles, virgules, crochets, etc.). Pour cela, vous pouvez utiliser :

Des outils en ligne comme JSONLint ou JSONOnline : il suffit de coller votre JSON et de cliquer sur « Valider JSON » pour voir si la syntaxe est correcte.

Les fonctions natives de votre langage (par exemple, JSON.parse() en JavaScript ou json.loads() en Python) qui lèvent une erreur si le JSON n’est pas bien formé.

Bonnes Pratiques et Usages

Loïc DANDOY,