C# Programming

Serialisation JSON Efficace en C#

Spread the love

JSON (JavaScript Object Notation) est un format léger d’échange de données largement utilisé dans les applications web et les API. C# offre plusieurs manières efficaces de convertir des objets en chaînes JSON, simplifiant la communication avec d’autres systèmes et permettant un stockage de données lisible par l’homme. Cet article explore trois méthodes populaires pour cette conversion, en comparant leurs forces et leurs faiblesses.

Table des matières

Conversion d’objets en JSON utilisant JavaScriptSerializer

La classe System.Web.Script.Serialization.JavaScriptSerializer offre une approche simple de la sérialisation JSON. Cependant, c’est un composant hérité et il manque les fonctionnalités et les performances des bibliothèques plus modernes. Il est généralement recommandé d’utiliser des alternatives plus récentes pour les nouveaux projets.


using System;
using System.Web.Script.Serialization;

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

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string jsonString = serializer.Serialize(person);

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

Remarque : Nécessite une référence à System.Web.Extensions (généralement trouvée sous les assemblages .NET Framework). Non recommandé pour .NET Core et les versions ultérieures.

Sérialisation JSON efficace avec JsonConvert.SerializeObject

Newtonsoft.Json (souvent appelé Json.NET) est une bibliothèque JSON largement utilisée et performante pour C#. Il fournit une solution robuste et riche en fonctionnalités pour la sérialisation et la désérialisation JSON. Installez le package NuGet Newtonsoft.Json pour utiliser cette méthode.


using Newtonsoft.Json;

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

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        string jsonString = JsonConvert.SerializeObject(person);

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

JsonConvert.SerializeObject est concis et efficace. Newtonsoft.Json offre de nombreuses options de personnalisation pour la gestion des valeurs nulles, la mise en forme, etc.

Contrôle précis avec JObject.FromObject

Également partie de la bibliothèque Newtonsoft.Json, la classe JObject fournit un contrôle précis sur la structure JSON avant la sérialisation. Ceci est particulièrement utile lors de la manipulation de la représentation JSON avant de la convertir en chaîne.


using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

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

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        JObject jsonObject = JObject.FromObject(person);
        string jsonString = jsonObject.ToString();

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

Bien que similaire à JsonConvert.SerializeObject pour les objets simples, JObject.FromObject offre une plus grande flexibilité pour les scénarios complexes. Vous pouvez facilement ajouter, supprimer ou modifier des propriétés dans le JObject avant la sérialisation finale.

Conclusion : Pour le développement C# moderne, les méthodes JsonConvert.SerializeObject et JObject.FromObject de Newtonsoft.Json sont fortement recommandées en raison de leurs performances, de leurs fonctionnalités et de leur flexibilité. N’oubliez pas d’installer le package NuGet Newtonsoft.Json.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *