Passer au contenu du pied de page
.NET AIDE

Newtonsoft Jsonpath (Comment ça fonctionne pour les développeurs)

Si vous avez déjà travaillé avec des données JSON dans .NET, vous êtes probablement tombé sur la bibliothèque Newtonsoft.Json, un framework JSON haute performance populaire pour .NET. Ce tutoriel vise à aider les débutants et les utilisateurs intermédiaires à comprendre et à utiliser efficacement cette bibliothèque puissante, en se concentrant sur ses références système, sa documentation et les mises à jour de version pertinentes.

Démarrage

Pour commencer à utiliser Newtonsoft.Json, vous devez d'abord l'installer dans votre projet .NET. Cela peut être fait via NuGet, le gestionnaire de paquets .NET. Dans la console du gestionnaire de paquets NuGet, tapez :

Install-Package Newtonsoft.Json

Après l'installation réussie, ajoutez la bibliothèque à votre projet .NET en ajoutant l'instruction using suivante :

using Newtonsoft.Json;
using Newtonsoft.Json;
Imports Newtonsoft.Json
$vbLabelText   $csharpLabel

Analyse JSON avec Newtonsoft.JSON

Analyser JSON est essentiellement le processus de conversion d'une chaîne au format JSON en une structure de données utilisable dans votre application .NET. Avec Newtonsoft.Json, le processus est simple.

Jetons un œil à un objet JSON exemple pour une personne :

{
    "Name": "Iron Developer",
    "Age": 30,
    "Email": "irondeveloper@ironsoftware.com"
}

Nous pouvons analyser cette chaîne JSON en un objet C# en utilisant la méthode JsonConvert.DeserializeObject<T>()T est le type de l'objet que nous souhaitons créer. Dans ce cas, nous créerons une classe Person et analyserons le JSON dedans.

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

string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Email { get; set; }
}

string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
	Public Property Email() As String
End Class

Private jsonString As String = "JSON string here"
Private person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
$vbLabelText   $csharpLabel

Maintenant, l'objet person contiendra les valeurs de la chaîne JSON.

Travailler avec des fichiers JSON

Il vous arrivera souvent de devoir lire ou écrire des données JSON depuis ou vers un fichier. Voyons comment nous pouvons le faire avec Newtonsoft.Json. Nous utiliserons la classe File de l'espace de noms System.IO dans ce cas.

Pour lire un fichier JSON et l'analyser en un objet :

string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Dim path As String = "path to your json file"
Dim jsonString As String = File.ReadAllText(path)
Dim person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
$vbLabelText   $csharpLabel

Pour écrire un objet dans un fichier JSON :

Person person = new Person() 
{
    Name = "John Doe",
    Age = 30,
    Email = "johndoe@example.com"
};

string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Person person = new Person() 
{
    Name = "John Doe",
    Age = 30,
    Email = "johndoe@example.com"
};

string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Dim person As New Person() With {
	.Name = "John Doe",
	.Age = 30,
	.Email = "johndoe@example.com"
}

Dim path As String = "path to your json file"
Dim jsonString As String = JsonConvert.SerializeObject(person)
File.WriteAllText(path, jsonString)
$vbLabelText   $csharpLabel

Travailler avec des tableaux

Dans certains cas, votre JSON inclura des tableaux. Par exemple, un objet Person pourrait avoir un tableau de Friends :

{
    "Name": "John Doe",
    "Friends": [
        {
            "Name": "Jane Doe",
            "Age": 28
        },
        {
            "Name": "Billy",
            "Age": 25
        }
    ]
}

Vous pouvez utiliser la boucle foreach pour itérer sur le tableau JSON :

JArray friends = (JArray)jsonObject["Friends"];
foreach (JObject friend in friends)
{
    string friendName = (string)friend["Name"];
    Console.WriteLine(friendName);
}
JArray friends = (JArray)jsonObject["Friends"];
foreach (JObject friend in friends)
{
    string friendName = (string)friend["Name"];
    Console.WriteLine(friendName);
}
Dim friends As JArray = CType(jsonObject("Friends"), JArray)
For Each [friend] As JObject In friends
	Dim friendName As String = CStr([friend]("Name"))
	Console.WriteLine(friendName)
Next [friend]
$vbLabelText   $csharpLabel

Note : jsonObject doit être remplacé par un véritable JObject initialisé à partir du JSON.

Modifier et écrire JSON

Newtonsoft.Json facilite la modification et l'écriture de JSON. Disons que vous devez mettre à jour la valeur de Age de notre objet Person.

jsonObject["Age"] = 31; // Update the age
jsonObject["Age"] = 31; // Update the age
jsonObject("Age") = 31 ' Update the age
$vbLabelText   $csharpLabel

Et ensuite le réécrire en une chaîne :

string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // Write back to the file
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // Write back to the file
Dim updatedJson As String = jsonObject.ToString()
File.WriteAllText(path, updatedJson) ' Write back to the file
$vbLabelText   $csharpLabel

Note : jsonObject doit être remplacé par un véritable JObject initialisé à partir du JSON.

LINQ to JSON

Newtonsoft.Json offre également des fonctionnalités pour interroger et manipuler des objets JSON en utilisant LINQ (Language Integrated Query). C'est très puissant car cela vous permet d'utiliser tous les opérateurs LINQ standards pour interroger un objet JSON tout comme vous le feriez avec XML ou une collection d'objets.

Voici un exemple montrant comment vous pouvez récupérer les noms de tous les Friends de moins de 30 ans :

var youngFriends = jsonObject["Friends"].Where(f => (int)f["Age"] < 30)
                                        .Select(f => (string)f["Name"]);
foreach (string name in youngFriends)
{
    Console.WriteLine(name);
}
var youngFriends = jsonObject["Friends"].Where(f => (int)f["Age"] < 30)
                                        .Select(f => (string)f["Name"]);
foreach (string name in youngFriends)
{
    Console.WriteLine(name);
}
Imports System

Dim youngFriends = jsonObject("Friends").Where(Function(f) CInt(Math.Truncate(f("Age"))) < 30).Select(Function(f) CStr(f("Name")))
For Each name As String In youngFriends
	Console.WriteLine(name)
Next name
$vbLabelText   $csharpLabel

Note : jsonObject doit être remplacé par un véritable JObject initialisé à partir du JSON.

Introduction à IronPDF

Learn about IronPDF is a popular library in the .NET ecosystem that allows developers to créer, éditer et extraire des données de fichiers PDF. Il est incroyablement polyvalent et fonctionne parfaitement avec d'autres bibliothèques, y compris Newtonsoft.Json.

IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et styles originaux. Il est parfait pour créer des PDF à partir de contenus basés sur le Web tels que des rapports, des factures et de la documentation. Avec le support des fichiers HTML, des URLs et des chaînes HTML brutes, IronPDF produit facilement des documents PDF de haute qualité.

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

Supposons que nous ayons une exigence où nous avons des données JSON et que nous souhaitons créer un rapport PDF à partir de ces données. Nous pouvons utiliser Newtonsoft.Json pour analyser les données JSON et IronPDF pour créer le PDF. Voyons comment nous pouvons procéder.

Installation d'IronPDF

Comme Newtonsoft.Json, IronPDF est également disponible via NuGet. Vous pouvez l'installer en utilisant la commande suivante :

Install-Package IronPdf

Ensuite, vous pouvez l'inclure dans votre projet en ajoutant :

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Cas d'utilisation 1 : Création de PDF à partir de données JSON

Dans ce cas d'utilisation, nous allons démontrer comment utiliser Newtonsoft.Json et IronPDF pour générer un rapport PDF à partir de données JSON. Cela pourrait être particulièrement utile pour les applications qui créent des rapports dynamiques basés sur des données stockées dans un format JSON.

Voici un fichier JSON exemple avec lequel nous allons travailler :

{
    "Title": "Sales Report",
    "Month": "August",
    "Year": "2023",
    "TotalSales": "10000",
    "ItemsSold": "500"
}

Ces données JSON représentent un simple rapport de ventes.

La première étape consiste à lire le fichier JSON, nommé 'data.json' ici, et à l'analyser dans un dictionnaire en utilisant Newtonsoft.Json :

string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim reportData = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
$vbLabelText   $csharpLabel

Après avoir exécuté ce code, vous aurez un dictionnaire appelé reportData contenant des paires clé-valeur représentant les propriétés et leurs valeurs dans le fichier JSON.

Ensuite, nous générons un modèle HTML en utilisant les données de reportData. Les clés du dictionnaire reportData sont utilisées pour insérer les valeurs appropriées dans le HTML :

string htmlContent = $@"
<html>
<head><title>{reportData["Title"]}</title></head>
<body>
    <h1>{reportData["Title"]}</h1>
    <p>Month: {reportData["Month"]}</p>
    <p>Year: {reportData["Year"]}</p>
    <p>Total Sales: {reportData["TotalSales"]}</p>
    <p>Items Sold: {reportData["ItemsSold"]}</p>
</body>
</html>";
string htmlContent = $@"
<html>
<head><title>{reportData["Title"]}</title></head>
<body>
    <h1>{reportData["Title"]}</h1>
    <p>Month: {reportData["Month"]}</p>
    <p>Year: {reportData["Year"]}</p>
    <p>Total Sales: {reportData["TotalSales"]}</p>
    <p>Items Sold: {reportData["ItemsSold"]}</p>
</body>
</html>";
Dim htmlContent As String = $"
<html>
<head><title>{reportData("Title")}</title></head>ignoreignore<body><h1>{reportData("Title")}</h1><p>Month: {reportData("Month")}</p><p>Year: {reportData("Year")}</p><p>Total Sales: {reportData("TotalSales")}</p><p>Items Sold: {reportData("ItemsSold")}</p></body></html>"
$vbLabelText   $csharpLabel

Enfin, nous utilisons IronPDF pour convertir le code HTML en document PDF. Nous utilisons ChromePdfRenderer pour créer un générateur de PDF, l'utiliser pour convertir l'HTML en PDF, puis enregistrer le PDF :

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("Report.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("Report.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("Report.pdf")
$vbLabelText   $csharpLabel

Newtonsoft Jsonpath (Comment cela fonctionne pour les développeurs) : Figure 1

Cas d'utilisation 2 : JSON vers formulaire PDF

Dans ce cas d'utilisation, nous allons lire des données JSON pour remplir des champs de formulaire dans un document PDF. Pour cet exemple, considérons que nous avons les données JSON suivantes :

{
    "FirstName": "John",
    "LastName": "Smith",
    "PhoneNumber": "+19159969739",
    "Email": "John@email.com",
    "City": "Chicago"
}

Ces données JSON représentent des informations personnelles pour une personne.

Tout d'abord, nous utilisons Newtonsoft.Json pour lire les données JSON du fichier et les analyser dans un dictionnaire :

string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim person = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
$vbLabelText   $csharpLabel

Ce logiciel crée un dictionnaire appelé le person avec les clés "FirstName", "LastName", "PhoneNumber", "Email" et "City" et leurs valeurs correspondantes.

Ensuite, nous ouvrons le document PDF en utilisant IronPdf et nous obtenons le formulaire :

var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
Dim doc = PdfDocument.FromFile("myPdfForm.pdf")
Dim form = doc.Form
$vbLabelText   $csharpLabel

Nous pouvons maintenant utiliser le dictionnaire person pour remplir les champs de formulaire dans le document PDF :

form.Fields[0].Value = person["FirstName"];
form.Fields[1].Value = person["LastName"];
form.Fields[2].Value = person["PhoneNumber"];
form.Fields[3].Value = person["Email"];
form.Fields[4].Value = person["City"];
form.Fields[0].Value = person["FirstName"];
form.Fields[1].Value = person["LastName"];
form.Fields[2].Value = person["PhoneNumber"];
form.Fields[3].Value = person["Email"];
form.Fields[4].Value = person["City"];
form.Fields(0).Value = person("FirstName")
form.Fields(1).Value = person("LastName")
form.Fields(2).Value = person("PhoneNumber")
form.Fields(3).Value = person("Email")
form.Fields(4).Value = person("City")
$vbLabelText   $csharpLabel

Chaque champ de formulaire est associé à une clé du dictionnaire de la personne.

Enfin, nous sauvegardons le formulaire PDF rempli :

doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
$vbLabelText   $csharpLabel

Cette méthode va créer un nouveau document PDF avec les champs de formulaire remplis avec les données du fichier JSON.

Cela démontre comment vous pouvez efficacement utiliser Newtonsoft.Json pour analyser les données JSON et IronPDF pour manipuler les documents PDF.

Newtonsoft Jsonpath (Comment cela fonctionne pour les développeurs) : Figure 2

Cas d'utilisation 3 : Métadonnées PDF vers JSON

Tout d'abord, utilisez IronPDF pour extraire les métadonnées du PDF :

var pdf = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = pdf.MetaData;
var pdf = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = pdf.MetaData;
Dim pdf = IronPdf.PdfDocument.FromFile("document.pdf")
Dim metadata = pdf.MetaData
$vbLabelText   $csharpLabel

Ensuite, sérialisez ces données en une chaîne JSON en utilisant Newtonsoft.Json :

string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
Dim jsonString As String = JsonConvert.SerializeObject(metadata, Formatting.Indented)
File.WriteAllText("metadata.json", jsonString)
$vbLabelText   $csharpLabel

Dans ce code, l'objet metadata contient des propriétés comme Author, Title, CreateDate, etc. Celles-ci sont sérialisées en une chaîne JSON et écrites dans un fichier nommé "metadata.json".

Newtonsoft Jsonpath (Comment cela fonctionne pour les développeurs) : Figure 3

Combiner Newtonsoft.Json et IronPDF vous permet de convertir les données entre les fichiers PDF et JSON, répondant à une large gamme de cas d'utilisation.

Conclusion

Pour conclure, Newtonsoft.Json et IronPDF ensemble fournissent une solution puissante et flexible pour gérer les données JSON et générer des fichiers PDF dans .NET. En analysant les données JSON en objets .NET ou en dictionnaires avec Newtonsoft.Json, nous pouvons manipuler ces données et les utiliser dans divers contextes, comme remplir des formulaires PDF ou générer des rapports PDF dynamiques à partir de modèles. IronPDF rend le processus de création et de gestion des PDF simple et efficace.

Cet article a présenté les bibliothèques, mettant en lumière quelques-unes de leurs fonctionnalités de base. Cependant, les deux bibliothèques ont beaucoup plus à offrir. Nous recommandons fortement de consulter leur documentation complète pour un aperçu approfondi de leurs fonctionnalités et capacités.

Si vous êtes intéressé à essayer IronPDF, ils offrent une version d'essai gratuite d'IronPDF pour que vous puissiez explorer ses fonctionnalités et évaluer si elle répond à vos besoins avant d'acheter. Une fois que vous décidez de continuer avec IronPDF, les licences commencent à partir des options de licence IronPDF, qui incluent un accès continu à toutes les fonctionnalités discutées, ainsi que le support et les mises à jour. Cela garantit que vous disposez des outils et de l'assistance pour générer, gérer et manipuler efficacement des fichiers PDF dans vos projets .NET.

Questions Fréquemment Posées

Comment installer Newtonsoft.Json pour travailler avec JSON en .NET ?

Vous pouvez installer la bibliothèque Newtonsoft.Json dans votre projet .NET en utilisant le gestionnaire de packages NuGet. Exécutez la commande Install-Package Newtonsoft.Json dans la console du gestionnaire de packages. Une fois installée, incluez-la dans votre projet avec using Newtonsoft.Json;.

À quoi sert JsonConvert.DeserializeObject() ?

La méthode JsonConvert.DeserializeObject() est utilisée pour convertir des données JSON en objets .NET. Elle transforme des chaînes JSON en objets de type T, vous permettant de travailler avec les données JSON dans vos applications C#.

Comment puis-je manipuler les données JSON en utilisant LINQ ?

LINQ to JSON est une fonctionnalité fournie par Newtonsoft.Json, vous permettant d'interroger et de manipuler des objets JSON en utilisant la syntaxe LINQ. Cela est utile pour filtrer ou rechercher efficacement des données JSON dans vos applications .NET.

Comment générer un rapport PDF à partir de données JSON ?

Pour générer un rapport PDF à partir de données JSON, commencez par convertir le JSON en objets .NET en utilisant Newtonsoft.Json. Ensuite, créez un modèle HTML en utilisant ces données. Utilisez le ChromePdfRenderer d'IronPDF pour convertir le modèle HTML en un document PDF.

Puis-je remplir des formulaires PDF avec des données JSON ?

Oui, vous pouvez remplir des formulaires PDF avec des données JSON en analysant le JSON en un dictionnaire à l'aide de Newtonsoft.Json, puis en remplissant les champs du formulaire PDF avec ces données à l'aide d'IronPDF, avant de sauvegarder le document PDF rempli.

Comment puis-je convertir les métadonnées d'un PDF en JSON ?

Extrayez les métadonnées d'un PDF en utilisant IronPDF et convertissez-les en chaîne JSON en utilisant Newtonsoft.Json. Ce processus vous permet de stocker et de manipuler facilement les métadonnées PDF au format JSON.

Quels sont les avantages d'utiliser Newtonsoft.Json et IronPDF ensemble ?

L'utilisation de Newtonsoft.Json avec IronPDF dans une application .NET offre un moyen transparent de gérer les données JSON et de générer ou manipuler des fichiers PDF, facilitant des tâches telles que la génération de rapports dynamiques, le remplissage de formulaires et l'échange de données.

Comment lire et écrire des fichiers JSON en .NET ?

Pour lire un fichier JSON, utilisez File.ReadAllText pour charger la chaîne JSON, puis analysez-la avec JsonConvert.DeserializeObject. Pour écrire du JSON, sérialisez un objet en utilisant JsonConvert.SerializeObject et enregistrez-le avec File.WriteAllText.

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