CodeGym /Cours /C# SELF /Notions de base sur le format

Notions de base sur le format JSON et sa popularité

C# SELF
Niveau 43 , Leçon 4
Disponible

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
string
"name": "Ivan"
int, double
"score": 5
bool
"isStudent": true
tableau (int[], ...)
"scores": [5,4,5,3]
objet (class, ...)
"contacts": { ... }
null
"phone": null

Règles d'écriture du JSON

  1. Les chaînes entre guillemets doubles : 'text' — erreur, correct "text".
  2. Les clés d'objets — des chaînes entre guillemets doubles : par exemple, "name": ...
  3. Des virgules seulement entre les éléments, pas de virgule finale après le dernier élément.
  4. Les indentations ne sont pas obligatoires, mais améliorent la lisibilité.
  5. Les nombres sans guillemets : "age": 25, pas "age": "25".
  6. Les booléens — true/false (sans guillemets), pas True, FALSE ou "true".
  7. null s'écrit null (sans guillemets).

3. JSON vu par un développeur

Analogies avec les types C# :

  • Objet JSONDictionary<string, object>
  • Tableau JSONT[] ou List<T>
  • Chaîne JSON ≈ chaîne normale
  • Nombre JSONint 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 :

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.

2
Mission
C# SELF, niveau 43, leçon 4
Bloqué
Lecture des données depuis un fichier binaire
Lecture des données depuis un fichier binaire
1
Étude/Quiz
Découverte de la sérialisation, niveau 43, leçon 4
Indisponible
Découverte de la sérialisation
Concept de sérialisation des données
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION