1. Introduction
Si vous avez déjà ouvert des API modernes, travaillé avec des web-services, des applications mobiles ou même simplement essayé de sauvegarder quelque chose dans un "format universel" — vous avez déjà rencontré ou vous rencontrerez le JSON. C'est le format qui littéralement "connecte" différents langages de programmation et même différentes plateformes : C#, JavaScript, Python — tous parlent via le JSON.
Pourquoi le JSON est-il devenu la star de la sérialisation ? La réponse est simple : c'est un format texte compact, lisible par l'humain et léger pour l'échange de données structurées. Sa popularité vient du bon mix entre simplicité, universalité et excellente prise en charge dans les langages de programmation.
Qu'est-ce que le JSON ?
JSON — abréviation de JavaScript Object Notation. Le format vient du monde de JavaScript, mais il a très vite sauté hors des navigateurs pour le grand monde. Important : malgré le nom, le JSON n'est pas lié à JavaScript et est aussi pratique pour tous les langages.
Le format a été inventé au début des années 2000 par Douglas Crockford comme une alternative plus simple au verbeux XML. L'idée est simple : «JSON est plus court, plus simple et plus lisible à l'œil».
2. Règles principales du format JSON
L'essentiel : le JSON est un format texte strictement défini pour des données structurées. Pas de magie, juste du texte normal qu'on peut ouvrir dans n'importe quel éditeur.
Structures de base :
- Tableaux (arrays) : listes ordonnées de valeurs.
- Objets (objects) : ensembles de paires clé-valeur.
- Types simples : chaînes, nombres, booléens (true, false) et la valeur spéciale null.
Exemple d'un document JSON minimal :
{
"name": "Ivan",
"age": 25,
"isStudent": true,
"scores": [5, 4, 5, 3],
"contacts": {
"email": "ivan@example.com",
"phone": null
}
}
Structure schématique
Voici un tableau de correspondances entre les types C# et leur représentation en JSON :
| Type C# | Exemple JSON |
|---|---|
|
|
|
|
|
|
| tableau (int[], ...) | |
| objet (class, ...) | |
|
|
Règles d'écriture du JSON
- Les chaînes entre guillemets doubles : 'text' — erreur, correct "text".
- Les clés d'objets — des chaînes entre guillemets doubles : par exemple, "name": ...
- Des virgules seulement entre les éléments, pas de virgule finale après le dernier élément.
- Les indentations ne sont pas obligatoires, mais améliorent la lisibilité.
- Les nombres sans guillemets : "age": 25, pas "age": "25".
- Les booléens — true/false (sans guillemets), pas True, FALSE ou "true".
- null s'écrit null (sans guillemets).
3. JSON vu par un développeur
Analogies avec les types C# :
- Objet JSON ≈ Dictionary<string, object>
- Tableau JSON ≈ T[] ou List<T>
- Chaîne JSON ≈ chaîne normale
- Nombre JSON ≈ int ou double (selon la valeur)
Exemple de sérialisation d'un objet en JSON
Classe :
public class Student
{
public string Name { get; set; } = "";
public int Age { get; set; }
public bool IsStudent { get; set; }
public int[] Scores { get; set; } = Array.Empty<int>();
}
Le JSON obtenu (simplifions, les détails de sérialisation viennent plus loin) :
{
"Name": "Ivan",
"Age": 25,
"IsStudent": true,
"Scores": [5, 4, 5, 3]
}
4. Exemples de structures JSON valides
Objet avec tableau et objets imbriqués
{
"product": "Café",
"price": 125.50,
"inStock": true,
"attributes": {
"weight": 500,
"unit": "gr"
},
"tags": ["boisson", "énergie", "arabica"],
"promotions": null
}
Tableau d'objets
[
{"id": 1, "name": "Petya"},
{"id": 2, "name": "Masha"},
{"id": 3, "name": "Vasya"}
]
5. Exemples de JSON invalides (et pourquoi)
Guillemets simples :
{ 'name': 'Ivan' } // Erreur !
Le JSON exige des guillemets doubles.
Virgule après le dernier élément :
{ "x": 1, "y": 2, } // Erreur !
Une virgule en trop à la fin n'est pas permise.
Commentaires :
{
// Malheureusement ce genre de beauté ne fonctionne pas en JSON
"name": "Ivan"
}
Il n'y a pas de commentaires en JSON.
6. Pourquoi utiliser JSON dans des projets réels ?
Échange de données entre systèmes
Le JSON est un "langage commun" universel entre différentes applications, souvent au-dessus de HTTP. Par exemple, un serveur en C# communique avec un frontend en JavaScript — leur format commun est le JSON.
Stockage des réglages et des données
Beaucoup d'applications stockent les réglages dans des fichiers .json. Par exemple, appsettings.json — le standard pour les applications .NET. Avantages : facile à lire, modifier et versionner.
API serveur et mobile
La plupart des REST API utilisent le JSON comme format de requête et de réponse : par exemple, la liste des utilisateurs arrive sous forme d'un tableau d'objets.
Configuration d'outils et bibliothèques
Beaucoup d'outils dans .NET (Serilog, Swagger, etc.) utilisent le JSON pour les configurations. XML se voit de moins en moins — le JSON est plus compact et plus clair.
7. Popularité du JSON : pourquoi tout le monde l'aime ?
- Lisibilité. Même un non-développeur peut comprendre la structure.
- Facilité d'envoi sur le réseau. Texte simple, peu "lourd".
- Support dans tous les langages. Sérialisation/désérialisation disponibles "out of the box".
- Pratique pour les configurations. Tous les éditeurs travaillent très bien avec lui.
- Facilité de génération. Générer du JSON est très simple.
- Tableaux, imbrication, null. Tout est intuitif, sans la "fièvre des crochets" comme avec XML.
Quand préférer JSON ?
- Si vous créez une application mobile ou web ;
- Si vous travaillez avec les API de services externes ;
- Si vous voulez rendre votre application compatible avec des intégrations futures.
8. Comment C# travaille avec JSON
Bref aperçu des bibliothèques .NET populaires :
- System.Text.Json — standard, rapide et simple.
- Newtonsoft.Json (Json.NET) — le "vétéran" avec un large ensemble de fonctionnalités.
Exemple minimal de sérialisation/désérialisation :
using System.Text.Json;
// Convertit un objet en chaîne JSON
var student = new Student { Name = "Ivan", Age = 25, IsStudent = true, Scores = new[] {5, 4, 5, 3} };
string json = JsonSerializer.Serialize(student);
// Et inversement : lire un objet depuis une chaîne JSON
Student? parsed = JsonSerializer.Deserialize<Student>(json);
Console.WriteLine(json);
9. Erreurs typiques des débutants avec JSON
Une erreur fréquente — confondre les guillemets ou oublier une virgule. Parfois on essaie d'ajouter des commentaires (comme en C# — c'est pratique !), mais le JSON ne le permet pas.
Autre situation courante — sérialiser des objets avec des collections non initialisées : on obtient "scores" : null au lieu du tableau attendu. Initialisez les collections à l'avance.
Rappelez-vous que le JSON est du texte : de grands volumes de données prennent beaucoup de mémoire. Si vous sérialisez par exemple 500 Mo en JSON, l'application peut sérieusement souffrir en performance.
GO TO FULL VERSION