Travailler avec JSON en C# : parsing et sérialisation pour .NET

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

Introduction au travail avec JSON en C#



JSON (JavaScript Object Notation) est un format léger d'échange de données qui est devenu la norme pour l'interaction entre les services web, les fichiers de configuration et les API. Dans l'écosystème C# (.NET), le travail avec JSON est l'une des tâches fondamentales que chaque développeur rencontre. Dans cet article, nous allons détailler comment effectuer l'analyse (désérialisation) et la sérialisation des données en C#, en utilisant à la fois la bibliothèque intégrée System.Text.Json et la bibliothèque tierce populaire Newtonsoft.Json.



Vous apprendrez comment convertir des objets C# en chaînes JSON et vice versa, comment travailler avec des structures imbriquées, ainsi que les pièges potentiels que vous pourriez rencontrer en pratique. Ce contenu sera utile aussi bien aux débutants qu'aux développeurs expérimentés souhaitant systématiser leurs connaissances.



Sérialisation d'objets C# en JSON



La sérialisation est le processus de conversion d'un objet C# (ou d'une autre structure de données) en une chaîne au format JSON. Dans .NET, il existe plusieurs approches pour cela. Examinons les deux principales : System.Text.Json (recommandé par Microsoft) et Newtonsoft.Json (héritage, mais encore largement utilisé).



Sérialisation avec System.Text.Json



À partir de .NET Core 3.0, Microsoft a introduit sa propre bibliothèque pour travailler avec JSON — System.Text.Json. Elle se distingue par ses hautes performances et sa consommation mémoire minimale. Pour la sérialisation, on utilise la méthode JsonSerializer.Serialize().



using System;using System.Text.Json;

public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }}

class Program{ static void Main() { var person = new Person { Name = "Иван Петров", Age = 30, Email = "ivan@example.com" };

string json = JsonSerializer.Serialize(person); Console.WriteLine(json); }}


Résultat de l'exécution :

{"Name":"Иван Петров","Age":30,"Email":"ivan@example.com"}


Sérialisation avec Newtonsoft.Json



La bibliothèque Newtonsoft.Json (également connue sous le nom de Json.NET) a longtemps été la norme de facto. Elle offre plus de flexibilité et d'options de configuration que la solution intégrée. Pour l'utiliser, vous devez installer le package NuGet Newtonsoft.Json.



using System;using Newtonsoft.Json;

public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }}

class Program{ static void Main() { var person = new Person { Name = "Мария Сидорова", Age = 25, Email = "maria@example.com" };

string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); }}


Le résultat sera similaire, mais Newtonsoft.Json utilise par défaut la notation camelCase pour les noms de propriétés, si cela est configuré.



Configuration de la sérialisation



Dans les deux bibliothèques, vous pouvez contrôler le format de sortie : ignorer les valeurs null, utiliser le CamelCase, formater le JSON avec des indentations, etc.



Exemple pour System.Text.Json avec configuration :

var options = new JsonSerializerOptions{    WriteIndented = true, // Sortie jolie avec indentations    PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // Notation camelCase    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull // Ignorer les null};

string json = JsonSerializer.Serialize(person, options);


Analyse (désérialisation) du JSON en C#



La désérialisation est le processus inverse : la conversion d'une chaîne JSON en un objet C#. Cela est nécessaire lors de la réception de données depuis une API, de la lecture de fichiers de configuration

Blogs

Book Recommendations