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
- Les données JSON sont structurées autour de paires clé-valeur. Les principales règles de syntaxe sont :
- Les objets sont entourés d’accolades {}.
- Les clés sont toujours des chaînes de caractères entourées de guillemets doubles.
- Les valeurs peuvent être : chaîne, nombre, booléen, objet, tableau ou null.
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
- Sérialisation : Transformer un objet ou une structure en chaîne JSON pour l’échanger ou le stocker.
- Désérialisation : Convertir une chaîne JSON en objet exploitable dans un langage de programmation.
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
- Toujours utiliser des guillemets doubles pour les clés et les chaînes.
- Respecter la structure hiérarchique : objets imbriqués, tableaux dans des objets, etc.
- JSON est largement utilisé pour les échanges via API, la configuration d’applications et le stockage de données.