Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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.
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.
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
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)
La chaîne JSON résultante serait {"Nom" : "Jean Dupont", "Âge" : 30}, représentant l'objet personne au format JSON.
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#
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
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
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
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
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.
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.
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.
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
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.
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
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#.
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.
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
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.
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.
9 produits de l'API .NET pour vos documents de bureau