.NET-HILFE

C# Json Serializer (Wie es für Entwickler funktioniert)

Im Bereich der modernen Softwareentwicklung spielen Datenaustauschformate eine entscheidende Rolle bei der Kommunikation zwischen verschiedenen Systemen. Ein solches Format, das immense Popularität erlangt hat, ist JSON (JavaScript Object 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 besprechen, was JSON-Serialisierung ist und wofür sie verwendet wird. Außerdem werden wir versuchen, den JSON-Serialisierungsprozess anhand eines Beispiels mit der IronPDF PDF Library zu verstehen.

1. C# verstehen; JSON Serializer

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.

1.1. Beispiele für C# JSON-Serialisierung

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

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

Der resultierende JSON-String wäre {"Name":"John Doe","Age":30} und stellt das Personenobjekt im JSON-Format dar.

2. Arten von C# JSON-Serialisierer und Codebeispiele

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#

2.1. DataContractJsonSerializer

Dieser Serializer ist Teil des System.Runtime.Serialization.Json-Namespaces und verwendet die Data Contract-Attribute, um den Serialisierungsprozess zu steuern.

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

2.2. JavaScriptSerializer

Im Namespace System.Web.Script.Serialization befindlich, ist dieser Serializer ein Teil von ASP.NET und bietet eine einfache Möglichkeit, Objekte in das 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
$vbLabelText   $csharpLabel

2.3. Json.NET (Newtonsoft.Json)

Json.NET (Newtonsoft.Json) ist eine weit verbreitete Drittanbieterbibliothek für 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
$vbLabelText   $csharpLabel

3. Wann wird C&num verwendet; JSON-Serialisierer

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

3.1. Web-APIs

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.

3.2. Konfiguration Einstellungen

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.

3.3. Interoperabilität

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.

4. Was ist eine deserialisierte JSON-Zeichenfolge?

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 mit einem einfachen Beispiel unter Verwendung von Json.NET (Newtonsoft.Json) veranschaulichen:

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

5. Einführung in IronPDF in C#

Da wir nun ein solides Verständnis der C#-JSON-Serialisierung haben, lassen Sie uns die Integration der IronPDF C# Library erkunden, einer leistungsstarken 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.

5.1. IronPDF kurz und bündig

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.

Die HTML-zu-PDF-Konvertierungs-funktion von IronPDF ist ein Highlight, da sie 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
$vbLabelText   $csharpLabel

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.

5.2. Verwendung von C# JSON-Serialisierer mit IronPDF-Code

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.

5.3. Beispiel 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

In diesem Beispiel repräsentiert die ReportData-Klasse die Datenstruktur für jeden Abschnitt im Bericht. Die Datenliste enthält Instanzen dieser Klasse.

Die Daten werden mit JsonConvert.SerializeObject in JSON serialisiert, und der resultierende JSON-String wird in eine HTML-Vorlage eingebettet. IronPDF wird dann verwendet, um diese HTML-Vorlage in ein PDF-Dokument zu konvertieren.

5.4. Ausgabe

C# Json-Serialisierer (Wie es für Entwickler funktioniert) Abbildung 1

6. Schlussfolgerung

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 kostenlose Testlizenz an, die eine großartige Gelegenheit ist, die C# PDF Library IronPDF Pricing zu testen und sich damit vertraut zu machen, mit Preisen ab $749 für die Lite-Version.

Um zu erfahren, wie Sie mit IronPDF beginnen können, besuchen Sie die IronPDF-Dokumentation.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
Solide Prinzipien C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Forms (Wie es für Entwickler funktioniert)