AIDE .NET

C# Json Serializer (Comment ça marche pour les développeurs)

Publié décembre 12, 2023
Partager:

Dans le domaine du développement de logiciels modernes, les formats d'échange de données jouent un rôle crucial en permettant la communication entre différents systèmes. L'un de ces formats qui a gagné une immense popularité est JSON (Notation d'objets JavaScript).

Les développeurs C# se retrouvent souvent à travailler avec des données JSON et, pour faciliter l'interaction, C# fournit un outil puissant - le C# JSON Serializer.

Dans cet article, nous verrons ce qu'est Sérialisation JSON et ses utilisations. Nous essaierons également de comprendre le processus de sérialisation JSON à l'aide d'un exemple avec la bibliothèque PDF IronPDF.

1. Comprendre C# ; Sérialiseur JSON

C# JSON Serializer est un composant qui convertit les objets C# en leur représentation JSON et vice versa. Ce processus, connu sous le nom de sérialisation et de désérialisation, est essentiel lors de l'échange de données entre une application C# et des systèmes ou services externes.

Prenons le cas d'une application de commerce électronique qui doit envoyer des informations sur des produits à une application mobile. Au lieu d'envoyer des objets C# bruts, que l'application mobile pourrait ne pas comprendre, l'application peut utiliser un sérialiseur JSON pour convertir les objets dans un format JSON universellement reconnu et facilement consommable par diverses plateformes.

1.1. Exemples de C# ; Sérialisation JSON

Prenons un exemple simple pour illustrer le concept. Supposons que nous ayons une classe C# représentant une personne

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
VB   C#

En utilisant la sérialisation JSON de C#, nous pouvons convertir une instance de cette classe en une chaîne JSON

Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Dim person As New Person With {
	.Name = "John Doe",
	.Age = 30
}
Dim json As String = JsonConvert.SerializeObject(person)
VB   C#

La chaîne JSON résultante serait {"Nom" : "Jean Dupont", "Âge" : 30}, représentant l'objet personne au format JSON.

2. Types de C# ; Sérialiseur JSON et exemples de code

C# propose différentes façons d'effectuer la sérialisation JSON, chacune avec son propre ensemble de fonctionnalités et de cas d'utilisation. Voici quelques méthodes de sérialisation JSON couramment utilisées en C#

2.1. Contrat de donnéesJsonSerializer

Ce sérialiseur fait partie de l'espace de noms System.Runtime.Serialization.Json et utilise les attributs du contrat de données pour contrôler le processus de sérialisation.

using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}
Imports System
Imports System.IO
Imports System.Runtime.Serialization.Json
Imports System.Text
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New DataContractJsonSerializer(GetType(Person))
		Dim stream As New MemoryStream()
		serializer.WriteObject(stream, person)
		Dim json As String = Encoding.UTF8.GetString(stream.ToArray())
		Console.WriteLine("Serialized JSON using DataContractJsonSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

2.2. JavaScriptSerializer

Situé dans l'espace de noms System.Web.Script.Serialization, ce sérialiseur fait partie d'ASP.NET et fournit un moyen simple de sérialiser des objets au format JSON.

using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}
Imports System
Imports System.Web.Script.Serialization
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New JavaScriptSerializer()
		Dim json As String = serializer.Serialize(person)
		Console.WriteLine("Serialized JSON using JavaScriptSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

2.3. Json.NET (Newtonsoft.Json)

Json.NET, souvent appelée Newtonsoft.Json, est une bibliothèque tierce largement utilisée pour la sérialisation JSON en C#. Il offre flexibilité, performance et un large éventail de fonctionnalités.

using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}
using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}
Imports System
Imports Newtonsoft.Json
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim json As String = JsonConvert.SerializeObject(person)
		Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

3. Quand utiliser C# ; Sérialiseur JSON

Savoir quand employer la sérialisation JSON C# est crucial pour un échange de données efficace et sans erreur. Voici quelques scénarios courants dans lesquels l'utilisation d'un sérialiseur JSON est bénéfique

3.1. API Web

Lors du développement d'API web qui communiquent avec des applications clientes, JSON est un format privilégié pour l'échange de données en raison de sa légèreté et de sa lisibilité pour l'homme.

3.2. Paramètres de configuration

Le stockage et la lecture des paramètres de configuration au format JSON est une pratique courante. La sérialisation JSON simplifie le processus de conversion de ces paramètres entre les objets C# et JSON.

3.3. L'interopérabilité

Lors de l'intégration d'applications C# avec des systèmes développés dans d'autres langages, JSON fournit un format de données indépendant du langage, garantissant une interopérabilité transparente.

4. Qu'est-ce qu'une chaîne JSON désérialisée ?

La désérialisation est le processus qui consiste à reconvertir une chaîne JSON en son objet C# équivalent. Il s'agit d'une étape cruciale lorsque l'on travaille avec des données reçues de sources externes, telles que des API web ou des données JSON stockées.

En C#, les mêmes sérialiseurs utilisés pour la sérialisation peuvent souvent être employés pour la désérialisation. Illustrons la désérialisation par un exemple simple utilisant Json.NET (Newtonsoft.Json):

using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}
using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}
Imports System
Imports Newtonsoft.Json
Public Class user
	Public Property firstname() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim json As String = "{""Name"":""John Doe"",""Age"":30}"
		Dim deserializedPerson As Person = JsonConvert.DeserializeObject(Of Person)(json)
		Console.WriteLine("Deserialized Person:")
		Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}")
	End Sub
End Class
VB   C#

5. Présentation d'IronPDF au C# ;

Maintenant que nous avons une solide compréhension de la sérialisation JSON en C#, explorons l'intégration de IronPDFune puissante bibliothèque pour travailler avec les PDF en C#. IronPDF simplifie le processus de génération et de manipulation des documents PDF, ce qui en fait un excellent choix pour les scénarios dans lesquels les PDF sont impliqués.

5.1. IronPDF en bref

IronPDF est une bibliothèque C# qui permet aux développeurs de créer, manipuler et afficher des documents PDF dans leurs applications. Que vous ayez besoin de générer des factures, des rapports ou tout autre type de document PDF, IronPDF offre une solution pratique et riche en fonctionnalités.

IronPDF's HTML vers PDF est un point fort, car elle permet de conserver vos mises en page et vos styles. Il transforme le contenu web en PDF, ce qui convient pour les rapports, les factures et la documentation. Vous pouvez convertir facilement des fichiers HTML, des URL et des chaînes HTML en PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

Pour commencer à utiliser IronPDF, vous devez d'abord installer le paquetage NuGet IronPDF :

Install-Package IronPdf

Une fois installée, vous pouvez utiliser la bibliothèque IronPDF pour effectuer diverses tâches liées au format PDF dans votre application C#.

5.2. Utilisation de C# ; Sérialiseur JSON avec le code IronPDF

Voyons maintenant un exemple pratique de la façon dont la sérialisation JSON en C# peut être intégrée de manière transparente à IronPDF. Imaginez un scénario dans lequel vous disposez d'un ensemble de données qui doivent être présentées dans un rapport PDF.

Les données sont initialement stockées sous forme d'objets C# et doivent être converties au format JSON avant d'être intégrées dans le document PDF à l'aide d'IronPDF.

5.3. Exemple de code

using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema;// json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}
using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema;// json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}
Imports IronPdf
Imports Newtonsoft.Json.Converters
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json.Utilities
Imports System.Collections.Generic
Imports Newtonsoft.Json.Schema ' json schema
Imports Newtonsoft.Json
Public Class ReportData
	Public Property Title() As String
	Public Property Content() As String
End Class
Public Class Program
	Shared Sub Main()
		Dim data = New List(Of ReportData) From {
			New ReportData With {
				.Title = "Section 1",
				.Content = "Lorem ipsum dolor sit amet."
			},
			New ReportData With {
				.Title = "Section 2",
				.Content = "Consectetur adipiscing elit."
			}
		}
		' Convert data to JSON format
		Dim jsonData As String = JsonConvert.SerializeObject(data)
		' Create PDF document using IronPDF
		Dim renderer = New ChromePdfRenderer()
		' Embed JSON data into the PDF
		Dim htmlContent As String = $"<html><body><h4>{jsonData}</h4></body></html>"
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
		' Save or display the PDF as needed
		pdfDocument.SaveAs("Report.pdf")
	End Sub
End Class
VB   C#

Dans cet exemple, la classe ReportData représente la structure de données pour chaque section du rapport. La liste data contient des instances de cette classe.

Les données sont sérialisées en JSON à l'aide de JsonConvert.SerializeObject, et la chaîne JSON résultante est intégrée dans un modèle HTML. IronPDF est ensuite utilisé pour convertir ce modèle HTML en document PDF.

5.4. Sortie

Sérialiseur Json C# (Comment cela fonctionne-t-il pour les développeurs ?)  Figure 1

6. Conclusion

En conclusion, la sérialisation JSON C# est un outil fondamental pour gérer l'échange de données dans les applications C#.

Que vous travailliez avec des API web, des paramètres de configuration ou que vous intégriez des systèmes dans d'autres langages, la compréhension et l'exploitation de la sérialisation JSON de C# peuvent grandement améliorer l'efficacité et la flexibilité de vos applications.

Lorsqu'il s'agit de travailler avec des PDF en C#, IronPDF offre une solution robuste pour la création, la manipulation et le rendu de documents PDF.

En combinant la puissance de la sérialisation C# JSON et d'IronPDF, les développeurs peuvent intégrer de manière transparente des données provenant d'objets C# dans des rapports PDF, ce qui ouvre de nouvelles possibilités pour générer du contenu PDF dynamique et axé sur les données dans leurs applications.

Alors que le monde du développement logiciel continue d'évoluer, la maîtrise de ces outils devient de plus en plus importante pour construire des solutions robustes et interopérables.

IronPDF offre un service de essai gratuit qui constitue une excellente occasion de tester et de se familiariser avec la bibliothèque C# PDF IronPDF avec des prix à partir de $749 pour la version Lite.

Pour savoir comment démarrer avec IronPDF, visitez le site ici.

< PRÉCÉDENT
Principes solides C# (Comment ça marche pour les développeurs)
SUIVANT >
Formulaires C# (Comment ça marche pour les développeurs)