Zum Fußzeileninhalt springen
.NET HILFE

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

In the realm of modern software development, data interchange formats play a crucial role in enabling communication between diverse systems. One such format that has gained immense popularity is JSON (JavaScript Object Notation).

C# developers often find themselves working with JSON data, and to facilitate smooth interaction, C# provides a powerful tool - the C# JSON Serializer.

In this article, we will discuss what JSON Serialization is and its uses. Also, we will try to understand the JSON Serialization process with the help of an example with IronPDF PDF Library.

1. Understanding C# JSON Serializer

C# JSON Serializer is a component that converts C# objects into their JSON representation and vice versa. This process, known as serialization and deserialization, is essential when exchanging data between a C# application and external systems or services.

Consider a scenario where an e-commerce application needs to send product information to a mobile app. Instead of sending raw C# objects, which the mobile app might not understand, the application can use a JSON serializer to convert the objects into a JSON format that is universally recognized and easily consumable by various platforms.

1.1. Examples of C# JSON Serialization

Let's delve into a simple example to illustrate the concept. Assume we have a C# class representing a person:

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

Using C# JSON serialization, we can convert an instance of this class into a JSON string:

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

The resulting JSON string would be {"Name":"John Doe","Age":30}, representing the person object in a JSON format.

2. Types of C# JSON Serializer and Code Examples

C# offers various ways to perform JSON serialization, each with its own set of features and use cases. Here are some commonly used JSON serialization methods in C#:

2.1. DataContractJsonSerializer

This serializer is part of the System.Runtime.Serialization.Json namespace and uses the Data Contract attributes to control the serialization process.

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));
        using (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));
        using (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))
		Using 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 Using
	End Sub
End Class
$vbLabelText   $csharpLabel

2.2. JavaScriptSerializer

Located in the System.Web.Script.Serialization namespace, this serializer is a part of ASP.NET and provides a simple way to serialize objects to JSON format.

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) is a widely used third-party library for JSON serialization in C#. It offers flexibility, performance, and a rich set of features.

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. When to Use C# JSON Serializer

Knowing when to employ C# JSON serialization is crucial for efficient and error-free data exchange. Here are common scenarios where using a JSON serializer is beneficial:

3.1. Web APIs

When developing web APIs that communicate with client applications, JSON is a preferred format for data exchange due to its lightweight and human-readable nature.

3.2. Configuration Settings

Storing and reading configuration settings in a JSON format is a common practice. JSON serialization simplifies the process of converting these settings between C# objects and JSON.

3.3. Interoperability

When integrating C# applications with systems developed in other languages, JSON provides a language-agnostic data format, ensuring seamless interoperability.

4. What is a deserialized JSON string?

Deserialization is the process of converting a JSON string back into its equivalent C# object. This is a crucial step when working with data received from external sources, such as web APIs or stored JSON data.

In C#, the same serializers used for serialization can often be employed for deserialization. Let's illustrate deserialization with a simple example using Json.NET (Newtonsoft.Json):

using System;
using Newtonsoft.Json;

public class Person
{
    public string Name { 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 Person
{
    public string Name { 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 Person
	Public Property Name() 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. Introducing IronPDF in C#

Now that we have a solid understanding of C# JSON serialization, let's explore the integration of IronPDF C# Library, a powerful library for working with PDFs in C#. IronPDF simplifies the process of generating and manipulating PDF documents, making it an excellent choice for scenarios where PDFs are involved.

5.1. IronPDF in a Nutshell

IronPDF is a C# library that allows developers to create, manipulate, and render PDF documents within their applications. Whether you need to generate invoices, reports, or any other type of PDF document, IronPDF provides a convenient and feature-rich solution.

IronPDF’s HTML to PDF Conversion feature is a highlight, maintaining your layouts and styles. It turns web content into PDFs, suitable for reports, invoices, and documentation. You can convert HTML files, URLs, and HTML strings to PDFs with ease.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert an 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 an 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 a 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 an 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 an 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 a 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 an 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 an 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 a 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

To get started with IronPDF, you first need to install the IronPDF NuGet package:

Install-Package IronPdf

Once installed, you can use the IronPDF library to perform various PDF-related tasks in your C# application.

5.2. Using C# JSON Serializer with IronPDF Code

Now, let's explore a practical example of how C# JSON serialization can be seamlessly integrated with IronPDF. Consider a scenario where you have a collection of data that needs to be presented in a PDF report.

The data is initially stored as C# objects and needs to be converted into JSON format before being embedded into the PDF document using IronPDF.

5.3. Example Code

using IronPdf;
using Newtonsoft.Json;
using System.Collections.Generic;

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 a 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;
using System.Collections.Generic;

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 a 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
Imports System.Collections.Generic

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

In this example, the ReportData class represents the data structure for each section in the report. The data list contains instances of this class.

The data is serialized into JSON using JsonConvert.SerializeObject, and the resulting JSON string is embedded into an HTML template. IronPDF is then used to convert this HTML template into a PDF document.

5.4. Output

C# Json Serializer (How It Works For Developers) Figure 1

6. Conclusion

In conclusion, C# JSON serialization is a fundamental tool for handling data interchange in C# applications.

Whether you're working with web APIs, configuration settings, or integrating with systems in other languages, understanding and leveraging C# JSON serialization can greatly enhance the efficiency and flexibility of your applications.

When it comes to working with PDFs in C#, IronPDF provides a robust solution for creating, manipulating, and rendering PDF documents.

By combining the power of C# JSON serialization and IronPDF, developers can seamlessly integrate data from C# objects into PDF reports, opening up new possibilities for generating dynamic and data-driven PDF content in their applications.

As the world of software development continues to evolve, mastering these tools becomes increasingly important for building robust and interoperable solutions.

IronPDF offers a free trial license, which is a great opportunity to test and familiarize yourself with the C# PDF Library IronPDF Pricing with pricing starting from $799 for the lite version.

To learn how to get started with IronPDF, visit the IronPDF Documentation.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

Sie können die RenderHtmlAsPdf-Methode von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Sie können auch HTML-Dateien mit RenderHtmlFileAsPdf in PDFs konvertieren.

Was ist JSON-Serialisierung in C# und warum ist sie wichtig?

Die JSON-Serialisierung in C# ist der Prozess der Umwandlung von C#-Objekten in ihre JSON-Darstellung, was entscheidend für den Datenaustausch zwischen Anwendungen und externen Systemen ist. Dies macht sie zu einem unverzichtbaren Werkzeug für Szenarien wie Web-APIs und Konfigurationseinstellungen.

Welche sind die wichtigsten C# JSON-Serializer?

Die wichtigsten C# JSON-Serializer sind DataContractJsonSerializer, JavaScriptSerializer und Json.NET (Newtonsoft.Json), die jeweils einzigartige Funktionen für unterschiedliche Anwendungsfälle bieten.

Wie können JSON-Daten in PDF-Dokumente in C# eingebettet werden?

Sie können C#-Objekte in JSON-Format serialisieren und dann IronPDF verwenden, um diese JSON-Daten unter Nutzung der HTML-Rendering-Fähigkeiten in PDF-Dokumente einzubetten.

Kann ich JSON-Strings wieder in C#-Objekte umwandeln? Wie?

Ja, Sie können JSON-Strings durch einen Prozess namens Deserialisierung wieder in C#-Objekte umwandeln. Json.NET (Newtonsoft.Json) bietet robuste Funktionen für die Deserialisierung von JSON in C#-Objekte.

Welche Rolle spielt IronPDF bei der Erstellung von PDFs aus JSON in C#?

IronPDF ermöglicht es Entwicklern, PDFs durch das Rendern von HTML-Inhalten zu erstellen, die JSON-Daten enthalten können. Diese Integration ist nützlich für die Erstellung dynamischer, datengetriebener PDFs.

Wie installiere ich eine PDF-Bibliothek in einem C#-Projekt?

Sie können eine PDF-Bibliothek in einem C#-Projekt installieren, indem Sie den NuGet-Paket-Manager verwenden, um das entsprechende Bibliothekspaket, wie IronPDF, zu Ihrem Projekt hinzuzufügen.

Wie verbessert JSON-Serialisierung die Interoperabilität zwischen Systemen?

Die JSON-Serialisierung verbessert die Interoperabilität, indem sie ein sprachunabhängiges Datenformat bereitstellt, das es verschiedenen Systemen, die möglicherweise in verschiedenen Sprachen entwickelt wurden, ermöglicht, Daten nahtlos auszutauschen.

Was sind die Vorteile der Verwendung von Json.NET für JSON-Serialisierung in C#?

Json.NET (Newtonsoft.Json) bietet Flexibilität, Leistung und eine umfassende Funktionspalette, was es zu einer bevorzugten Wahl für JSON-Serialisierung in C#-Anwendungen macht.

Was ist ein praktisches Beispiel für die Verwendung von IronPDF mit JSON-Serialisierung in C#?

Ein praktisches Beispiel ist die Umwandlung von C#-Objekten in JSON-Format und die Verwendung von IronPDF, um dieses JSON in ein PDF-Dokument einzubetten, wodurch ein dynamischer Bericht erstellt wird, der leicht geteilt und gedruckt werden kann.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen