Passer au contenu du pied de page
.NET AIDE

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

Dans le domaine du développement logiciel moderne, les formats d'échange de données jouent un rôle crucial dans la communication entre des systèmes divers. Un format qui a gagné une immense popularité est le JSON (JavaScript Object Notation).

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

Dans cet article, nous allons discuter de ce qu'est la sérialisation JSON et de ses utilisations. De plus, nous essayerons de comprendre le processus de sérialisation JSON à l'aide d'un exemple avec IronPDF PDF Library.

1. Comprendre le sérialiseur JSON C

Le sérialiseur JSON C# 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 désérialisation, est essentiel lors de l'échange de données entre une application C# et des systèmes ou services externes.

Considérons un scénario où une application de commerce électronique doit envoyer des informations sur les produits à une application mobile. Plutôt que 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 en un format JSON universellement reconnu et facilement consommable par diverses plateformes.

1.1. Exemples de sérialisation JSON C

Explorons 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
$vbLabelText   $csharpLabel

En utilisant la sérialisation JSON 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)
$vbLabelText   $csharpLabel

La chaîne JSON résultante serait {"Name":"John Doe","Age":30}, représentant l'objet personne dans un format JSON.

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

C# offre plusieurs façons de réaliser la sérialisation JSON, chacune avec ses propres caractéristiques et cas d'utilisation. Voici quelques méthodes de sérialisation JSON couramment utilisées en C# :

2.1. DataContractJsonSerializer

Ce sérialiseur fait partie de l'espace de noms System.Runtime.Serialization.Json et utilise les attributs de 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));
        using (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));
        using (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))
		Using 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 Using
	End Sub
End Class
$vbLabelText   $csharpLabel

2.2. JavaScriptSerializer

Situé dans l'espace de noms System.Web.Script.Serialization, ce sérialiseur fait partie d'ASP.NET et offre 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
$vbLabelText   $csharpLabel

2.3. Json.NET (Newtonsoft.Json)

Json.NET (Newtonsoft.Json) est une bibliothèque tierce largement utilisée pour la sérialisation JSON en C#. Elle offre flexibilité, performance et un ensemble riche 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
$vbLabelText   $csharpLabel

3. Quand utiliser le sérialiseur JSON C

Savoir quand utiliser la sérialisation JSON C# est crucial pour un échange de données efficace et sans erreur. Voici des scénarios courants où 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 nature légère et lisible par 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 le JSON.

3.3. 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, assurant une interopérabilité transparente.

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

La désérialisation est le processus de conversion d'une chaîne JSON en son objet C# équivalent. C'est une étape cruciale lors de la manipulation de 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 avec un exemple simple utilisant Json.NET (Newtonsoft.Json) :

using System;
using Newtonsoft.Json;

public class Person
{
    public string Name { 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 Person
{
    public string Name { 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 Person
	Public Property Name() 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
$vbLabelText   $csharpLabel

5. Présentation d'IronPDF en C#

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

5.1. IronPDF en un coup d'œil

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

La fonction de conversion HTML en PDF d'IronPDF est un point fort, préservant vos mises en page et styles. Elle transforme le contenu web en PDF, adapté pour les rapports, factures et documentation. Vous pouvez facilement convertir 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 an 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 an 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 a 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 an 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 an 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 a 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 an 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 an 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 a URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Pour commencer avec IronPDF, vous devez d'abord installer le package NuGet IronPDF :

Install-Package IronPdf

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

5.2. Utiliser le sérialiseur JSON C# avec le code IronPDF

Explorons maintenant un exemple pratique de la façon dont la sérialisation JSON C# peut être intégrée sans problème avec IronPDF. Considérons un scénario où vous avez une collection de données qui doit être présentée 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;
using System.Collections.Generic;

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 a 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;
using System.Collections.Generic;

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 a 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
Imports System.Collections.Generic

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 a 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
$vbLabelText   $csharpLabel

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. Résultat

C# Json Serializer (How It Works For Developers) Figure 1

6. Conclusion

En conclusion, la sérialisation JSON C# est un outil fondamental pour la gestion des échanges de données dans les applications C#.

Que vous travailliez avec des API web, des paramètres de configuration ou une intégration avec des systèmes dans d'autres langages, comprendre et exploiter la sérialisation JSON C# peut considérablement améliorer l'efficacité et la flexibilité de vos applications.

Elle simplifie le processus de génération et de manipulation de documents PDF, ce qui en fait un excellent choix lorsque les PDF sont impliqués.

En combinant la puissance de la sérialisation JSON C# et d'IronPDF, les développeurs peuvent intégrer sans problème des données provenant d'objets C# dans des rapports PDF, ouvrant de nouvelles possibilités pour générer du contenu PDF dynamique et piloté par les données dans leurs applications.

À mesure que le monde du développement logiciel continue d'évoluer, maîtriser ces outils devient de plus en plus important pour construire des solutions robustes et interopérables.

IronPDF offers a free trial license, which is a great opportunity to test and familiarize yourself with the C# PDF Library IronPDF Pricing with pricing starting from $799 for the lite version.

Pour savoir comment commencer avec IronPDF, visitez la Documentation IronPDF.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Qu'est-ce que la sérialisation JSON en C# et pourquoi est-ce important ?

La sérialisation JSON en C# est le processus de conversion d'objets C# en leur représentation JSON, ce qui est crucial pour l'échange de données entre les applications et les systèmes externes. Cela en fait un outil essentiel pour des scénarios comme les API Web et les paramètres de configuration.

Quels sont les principaux sérialiseurs JSON C# disponibles ?

Les principaux sérialiseurs JSON C# sont DataContractJsonSerializer, JavaScriptSerializer, et Json.NET (Newtonsoft.Json), chacun offrant des fonctionnalités uniques adaptées à différents cas d'utilisation.

Comment les données JSON peuvent-elles être intégrées dans des documents PDF en C# ?

Vous pouvez sérialiser des objets C# au format JSON, puis utiliser IronPDF pour incorporer ces données JSON dans des documents PDF en tirant parti de ses capacités de rendu HTML.

Puis-je convertir des chaînes JSON en objets C# ? Comment ?

Oui, vous pouvez convertir des chaînes JSON en objets C# par un processus appelé désérialisation. Json.NET (Newtonsoft.Json) offre des fonctionnalités robustes pour désérialiser JSON en objets C#.

Quel rôle joue IronPDF dans la génération de PDFs à partir de JSON en C# ?

IronPDF permet aux développeurs de créer des PDFs en rendant du contenu HTML, qui peut inclure des données JSON. Cette intégration est utile pour générer des PDFs dynamiques basés sur des données.

Comment installer une bibliothèque PDF dans un projet C# ?

Vous pouvez installer une bibliothèque PDF dans un projet C# en utilisant le Gestionnaire de Paquets NuGet pour ajouter le paquet de bibliothèque correspondant, tel que IronPDF, à votre projet.

Comment la sérialisation JSON améliore-t-elle l'interopérabilité entre les systèmes ?

La sérialisation JSON améliore l'interopérabilité en fournissant un format de données indépendant du langage qui permet à différents systèmes, potentiellement développés dans divers langages, d'échanger des données sans heurts.

Quels sont les avantages de l'utilisation de Json.NET pour la sérialisation JSON en C# ?

Json.NET (Newtonsoft.Json) offre flexibilité, performance et un ensemble de fonctionnalités complet, ce qui en fait un choix préféré pour la sérialisation JSON dans les applications C#.

Quel est un exemple pratique d'utilisation de IronPDF avec la sérialisation JSON en C# ?

Un exemple pratique consiste à convertir des objets C# au format JSON et à utiliser IronPDF pour intégrer ce JSON dans un document PDF, créant ainsi un rapport dynamique facilement partageable et imprimable.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite