.NET-HILFE

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

Veröffentlicht 12. Dezember 2023
Teilen Sie:

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.

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
VB   C#

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)
VB   C#

Die resultierende JSON-Zeichenkette wäre {"Name": "John Doe", "Alter":30}, die das Personenobjekt in einem JSON-Format darstellt.

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 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
VB   C#

2.2. JavaScriptSerializer

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
VB   C#

2.3. Json.NET (Newtonsoft.Json)

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
VB   C#

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 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
VB   C#

5. Einführung in IronPDF in C#

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.

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.

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
VB   C#

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");
    }
}
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
VB   C#

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.

5.4. Ausgabe

C# Json Serialisierer (Wie es funktioniert für Entwickler) 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 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.

< PREVIOUS
Solide Prinzipien C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Forms (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >