Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Im Bereich der modernen Softwareentwicklung spielen Datenaustauschformate eine entscheidende Rolle bei der Kommunikation zwischen verschiedenen Systemen. Ein solches Format, das sich großer Beliebtheit erfreut, ist JSON (JavaScript-Objekt-Notation).
C#-Entwickler arbeiten häufig mit JSON-Daten, und um eine reibungslose Interaktion zu ermöglichen, bietet C# ein leistungsfähiges Tool - den C# JSON Serializer.
In diesem Artikel werden wir erörtern, was ist JSON-Serialisierung und ihre Verwendung. Außerdem werden wir versuchen, den JSON-Serialisierungsprozess mit Hilfe eines Beispiels mit der PDF-Bibliothek zu verstehen IronPDF.
C# JSON Serializer ist eine Komponente, die C#-Objekte in ihre JSON-Darstellung konvertiert und umgekehrt. Dieser Prozess, der als Serialisierung und Deserialisierung bezeichnet wird, ist für den Datenaustausch zwischen einer C#-Anwendung und externen Systemen oder Diensten unerlässlich.
Stellen Sie sich ein Szenario vor, in dem eine E-Commerce-Anwendung Produktdaten an eine mobile Anwendung senden muss. Anstatt rohe C#-Objekte zu senden, die die mobile Anwendung möglicherweise nicht versteht, kann die Anwendung einen JSON-Serialisierer verwenden, um die Objekte in ein JSON-Format zu konvertieren, das von verschiedenen Plattformen allgemein erkannt und leicht konsumiert werden kann.
Zur Veranschaulichung des Konzepts sei ein einfaches Beispiel angeführt. Angenommen, wir haben eine C#-Klasse, die eine Person darstellt
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
Mit der C# JSON-Serialisierung können wir eine Instanz dieser Klasse in eine JSON-Zeichenfolge umwandeln
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)
Die resultierende JSON-Zeichenkette wäre {"Name": "John Doe", "Alter":30}, die das Personenobjekt in einem JSON-Format darstellt.
C# bietet verschiedene Möglichkeiten zur JSON-Serialisierung, jede mit ihren eigenen Funktionen und Anwendungsfällen. Hier sind einige häufig verwendete JSON-Serialisierungsmethoden in C#
Dieser Serialisierer ist Teil des System.Runtime.Serialization.Json-Namensraums und verwendet die Datenvertragsattribute zur Steuerung des Serialisierungsprozesses.
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
Dieser Serialisierer, der sich im System.Web.Script.Serialization-Namensraum befindet, ist Teil von ASP.NET und bietet eine einfache Möglichkeit, Objekte im JSON-Format zu serialisieren.
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.NETnewtonsoft.Json ist eine weit verbreitete Bibliothek von Drittanbietern für die JSON-Serialisierung in C#. Es bietet Flexibilität, Leistung und eine Vielzahl von Funktionen.
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
Für einen effizienten und fehlerfreien Datenaustausch ist es wichtig zu wissen, wann die JSON-Serialisierung in C# eingesetzt werden sollte. Hier sind häufige Szenarien, in denen die Verwendung eines JSON-Serializers von Vorteil ist
Bei der Entwicklung von Web-APIs, die mit Client-Anwendungen kommunizieren, ist JSON ein bevorzugtes Format für den Datenaustausch, da es leicht und für den Menschen lesbar ist.
Das Speichern und Lesen von Konfigurationseinstellungen in einem JSON-Format ist eine gängige Praxis. Die JSON-Serialisierung vereinfacht den Prozess der Konvertierung dieser Einstellungen zwischen C#-Objekten und JSON.
Bei der Integration von C#-Anwendungen in Systeme, die in anderen Sprachen entwickelt wurden, bietet JSON ein sprachunabhängiges Datenformat, das eine nahtlose Interoperabilität gewährleistet.
Bei der Deserialisierung wird eine JSON-Zeichenkette in ein entsprechendes C#-Objekt zurückverwandelt. Dies ist ein entscheidender Schritt bei der Arbeit mit Daten aus externen Quellen, wie Web-APIs oder gespeicherten JSON-Daten.
In C# können die gleichen Serialisierer, die für die Serialisierung verwendet werden, oft auch für die Deserialisierung eingesetzt werden. Lassen Sie uns die Deserialisierung anhand eines einfachen Beispiels mit Json.NET veranschaulichen (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
Nachdem wir nun ein solides Verständnis der JSON-Serialisierung in C# haben, wollen wir die Integration von IronPDFeine leistungsstarke Bibliothek für die Arbeit mit PDFs in C#. IronPDF vereinfacht den Prozess der Erstellung und Bearbeitung von PDF-Dokumenten und ist damit eine ausgezeichnete Wahl für Szenarien, in denen PDFs eine Rolle spielen.
IronPDF ist eine C#-Bibliothek, mit der Entwickler PDF-Dokumente in ihren Anwendungen erstellen, bearbeiten und darstellen können. Egal, ob Sie Rechnungen, Berichte oder jede andere Art von PDF-Dokumenten erstellen müssen, IronPDF bietet eine bequeme und funktionsreiche Lösung.
IronPDF's HTML zu PDF funktion ist ein Highlight, das Ihre Layouts und Stile beibehält. Es wandelt Webinhalte in PDFs um, die sich für Berichte, Rechnungen und Dokumentationen eignen. Sie können HTML-Dateien, URLs und HTML-Strings mühelos in PDFs umwandeln.
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
Um mit IronPDF zu arbeiten, müssen Sie zunächst das IronPDF NuGet-Paket installieren:
Install-Package IronPdf
Nach der Installation können Sie die IronPDF-Bibliothek verwenden, um verschiedene PDF-bezogene Aufgaben in Ihrer C#-Anwendung durchzuführen.
Lassen Sie uns nun ein praktisches Beispiel für die nahtlose Integration der C# JSON-Serialisierung in IronPDF untersuchen. Stellen Sie sich ein Szenario vor, in dem Sie eine Sammlung von Daten haben, die in einem PDF-Bericht dargestellt werden müssen.
Die Daten werden zunächst als C#-Objekte gespeichert und müssen in das JSON-Format konvertiert werden, bevor sie mit IronPDF in das PDF-Dokument eingebettet werden.
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
In diesem Beispiel stellt die Klasse ReportData die Datenstruktur für jeden Abschnitt des Berichts dar. Die Liste data enthält Instanzen dieser Klasse.
Die Daten werden mit JsonConvert.SerializeObject in JSON serialisiert, und die resultierende JSON-Zeichenkette wird in eine HTML-Vorlage eingebettet. IronPDF wird dann verwendet, um diese HTML-Vorlage in ein PDF-Dokument zu konvertieren.
Zusammenfassend lässt sich sagen, dass die JSON-Serialisierung in C# ein grundlegendes Tool für den Datenaustausch in C#-Anwendungen ist.
Ganz gleich, ob Sie mit Web-APIs, Konfigurationseinstellungen oder der Integration von Systemen in anderen Sprachen arbeiten, das Verständnis und die Nutzung der JSON-Serialisierung in C# kann die Effizienz und Flexibilität Ihrer Anwendungen erheblich verbessern.
Wenn es um die Arbeit mit PDFs in C# geht, bietet IronPDF eine robuste Lösung zum Erstellen, Bearbeiten und Rendern von PDF-Dokumenten.
Durch die Kombination von C# JSON-Serialisierung und IronPDF können Entwickler Daten aus C#-Objekten nahtlos in PDF-Berichte integrieren und so neue Möglichkeiten für die Erstellung dynamischer und datengesteuerter PDF-Inhalte in ihren Anwendungen erschließen.
Da sich die Welt der Softwareentwicklung ständig weiterentwickelt, wird die Beherrschung dieser Werkzeuge für die Erstellung robuster und interoperabler Lösungen immer wichtiger.
IronPDF bietet eine kostenloser Test lizenz, die eine gute Gelegenheit bietet, die C# PDF Library zu testen und sich mit ihr vertraut zu machen IronPDF mit Preisen ab $749 für die Lite-Version.
Um zu erfahren, wie Sie mit IronPDF arbeiten können, besuchen Sie hier.
9 .NET API-Produkte für Ihre Bürodokumente