Traitement JSON en C# (.NET) : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Traitement JSON en C# (.NET) : guide complet avec exemples



JSON (JavaScript Object Notation) est l'un des formats d'échange de données les plus populaires dans les applications web modernes, les API et les fichiers de configuration. Dans l'écosystème .NET, les développeurs disposent d'outils puissants pour travailler avec JSON, permettant de sérialiser facilement des objets en JSON et vice versa. Dans cet article, nous examinerons en détail deux approches principales : la bibliothèque intégrée System.Text.Json (recommandée pour .NET Core 3.0+ et .NET 5+) et la bibliothèque tierce populaire Newtonsoft.Json (également connue sous le nom de Json.NET).



1. System.Text.Json — le standard moderne .NET



Depuis .NET Core 3.0, Microsoft a introduit sa propre bibliothèque haute performance pour travailler avec JSON — System.Text.Json. Elle est optimisée pour une consommation mémoire minimale et une vitesse élevée, ce qui en fait un choix idéal pour les nouveaux projets.



1.1. Installation et importation



La bibliothèque est déjà intégrée dans .NET 5/6/7/8/9, donc aucune installation supplémentaire n'est nécessaire. Pour l'utiliser, il suffit d'importer l'espace de noms :



using System.Text.Json;using System.Text.Json.Serialization;


1.2. Sérialisation et désérialisation de base



Prenons un exemple simple : la sérialisation d'un objet en JSON et inversement.



// Définition de la classepublic class Person{    public string Name { get; set; }    public int Age { get; set; }    public bool IsEmployed { get; set; }}

// Sérialisationvar person = new Person { Name = "Иван", Age = 30, IsEmployed = true };string json = JsonSerializer.Serialize(person);Console.WriteLine(json); // {"Name":"Иван","Age":30,"IsEmployed":true}

// Désérialisationvar deserializedPerson = JsonSerializer.Deserialize<Person>(json);Console.WriteLine(deserializedPerson.Name); // Иван


1.3. Travail avec les attributs



System.Text.Json prend en charge les attributs pour un réglage fin de la sérialisation :



public class Product{    [JsonPropertyName("product_id")]    public int Id { get; set; }        [JsonIgnore]    public string InternalCode { get; set; }        [JsonConverter(typeof(JsonStringEnumConverter))]    public ProductCategory Category { get; set; }}

public enum ProductCategory{ Electronics, Clothing, Food}

var product = new Product { Id = 101, InternalCode = "SECRET", Category = ProductCategory.Electronics };

string json = JsonSerializer.Serialize(product);// {"product_id":101,"Category":"Electronics"}// InternalCode n'est pas inclus dans le JSON grâce à [JsonIgnore]


1.4. Options de sérialisation



Vous pouvez configurer le comportement du sérialiseur via JsonSerializerOptions :



var options = new JsonSerializerOptions{    WriteIndented = true,           // Sortie formatée avec indentation    PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // camelCase pour les propriétés    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull // Ignorer les valeurs null};

string prettyJson = JsonSerializer.Serialize(person, options);Console.WriteLine(prettyJson);/* Sortie :{ "name": "Иван", "age": 30, "isEmployed": true}*/


2. Newtonsoft.Json (Json.NET) — un outil éprouvé par le temps



Avant l'arrivée de System.Text.Json, Newtonsoft.Json était la norme de facto pour travailler avec JSON dans .NET. Il offre des réglages plus flexibles et un large éventail de fonctionnalités, bien qu'il soit moins performant.



2.1. Installation



Pour utiliser Newtonsoft.Json, vous devez installer le package NuGet :



// Via la console Package Manager :Install-Package Newtonsoft.Json

// Ou via .NET CLI :dotnet add package Newtonsoft.Json


2.2. Travail de base



using Newtonsoft.Json;

public class Or

Recommendations