Présentation

1. Présentation de Newtonsoft.Json

Newtonsoft.Json (communément appelé Json.NET) est une bibliothèque open source de sérialisation‑désérialisation JSON pour l’écosystème .NET

  • Première version Json.NET 1.0.1 sortie en 2006, les versions majeures dépassent aujourd’hui la version 10
  • Initialement compatible avec .NET 2.0, fonctionne avec quasiment tous les frameworks .NET (Framework/.NET Core/.NET 5+)
  • Assembly : Newtonsoft.Json.dll, installez‑le via NuGet
  • Le code source était hébergé sur CodePlex, il est maintenant migré sur GitHub, très utilisé dans de nombreux projets d’entreprise

2. Qu’est‑ce que JSON

JSON(JavaScript Object Notation)

  • Format d’échange de données textuel léger et indépendant des langages, il n’est pas exclusif à JavaScript
  • Structure de base : paire clé‑valeur key:value ; prend en charge les objets imbriqués {} et les tableaux []
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"tom"},{"name":"bill"}]}Langage du code : C# (cs)

II. Définition des classes d’entité (correspondance avec la structure JSON)

Person.cs (objet étudiant)
namespace NewtonsoftDemo
{
    public class Person
    {
        public string name { set; get; }
    }
}Langage du code : C# (cs)
WebInfo.cs (objet racine)
namespace NewtonsoftDemo
{
    public class WebInfo
    {
        public string webname { set; get; }
        public string website { set; get; }
        public int age { set; get; }
        public Person[] students { set; get; }
    }
}Langage du code : C# (cs)

Exemple‑Sérialiser un objet en JSON

protected void Page_Load(object sender, EventArgs e)
{
    // 1. Instancier l’entité et affecter les valeurs
    WebInfo webInfo = new WebInfo();
    webInfo.age = 4;
    webInfo.webname = "FoxDevelop";
    webInfo.website = "foxdevelop.com";
    webInfo.students = new Person[] 
    { 
        new Person { name = "TOM" },
        new Person { name = "JACK" } 
    };

    // 2. Écriture bas niveau Newtonsoft.Json : sérialisation avec JsonWriter
    StringWriter sw = new StringWriter();
    JsonWriter writer = new JsonWriter(sw);
    new JsonSerializer().Serialize(writer, webInfo);
    string json = sw.GetStringBuilder().ToString();
}Langage du code : C# (cs)

Syntaxe simplifiée pour un usage quotidien

Newtonsoft.Json propose des méthodes statiques utilitaires, inutile d’instancier manuellement JsonWriter :

// Sérialisation en une ligne, très utilisée en développement
string json = JsonConvert.SerializeObject(webInfo);Langage du code : C# (cs)

Résultat JSON de sortie

{
  "webname": "FoxDevelop",
  "website": "foxdevelop.com",
  "age": "4",
  "students": [
    {"name":"TOM"},
    {"name":"JACK"}
  ]
}Langage du code : C# (cs)

Autres points

  • System.Text.Json : bibliothèque JSON intégrée Microsoft depuis .NET Core 3.0 ; Newtonsoft.Json reste très répandu sur les anciens projets .NET Framework
  • Fonctionnalités : alias de propriétés, exclusion de champs, formatage des dates, gestion des références circulaires et autres fonctions avancées

Présentation

Laisser un commentaire

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