JSON-Verarbeitung in C# (.NET): Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

JSON-Verarbeitung in C# (.NET): Vollständige Anleitung mit Beispielen



JSON (JavaScript Object Notation) ist eines der beliebtesten Formate für den Datenaustausch in modernen Webanwendungen, APIs und Konfigurationsdateien. Im .NET-Ökosystem stehen Entwicklern leistungsstarke Werkzeuge für die Arbeit mit JSON zur Verfügung, die eine einfache Serialisierung von Objekten in JSON und zurück ermöglichen. In diesem Artikel betrachten wir zwei Hauptansätze im Detail: die integrierte Bibliothek System.Text.Json (empfohlen für .NET Core 3.0+ und .NET 5+) und die beliebte Drittanbieter-Bibliothek Newtonsoft.Json (auch bekannt als Json.NET).



1. System.Text.Json — Moderner .NET-Standard



Ab .NET Core 3.0 hat Microsoft eine eigene leistungsstarke Bibliothek für die Arbeit mit JSON vorgestellt — System.Text.Json. Sie ist für minimalen Speicherverbrauch und hohe Geschwindigkeit optimiert, was sie zur idealen Wahl für neue Projekte macht.



1.1. Installation und Import



Die Bibliothek ist bereits in .NET 5/6/7/8/9 integriert, daher ist keine zusätzliche Installation erforderlich. Für die Nutzung reicht es aus, den Namespace einzubinden:



using System.Text.Json;using System.Text.Json.Serialization;


1.2. Grundlegende Serialisierung und Deserialisierung



Betrachten wir ein einfaches Beispiel: Serialisierung eines Objekts in JSON und zurück.



// Klasse definierenpublic class Person{    public string Name { get; set; }    public int Age { get; set; }    public bool IsEmployed { get; set; }}

// Serialisierungvar person = new Person { Name = "Ivan", Age = 30, IsEmployed = true };string json = JsonSerializer.Serialize(person);Console.WriteLine(json); // {"Name":"Ivan","Age":30,"IsEmployed":true}

// Deserialisierungvar deserializedPerson = JsonSerializer.Deserialize<Person>(json);Console.WriteLine(deserializedPerson.Name); // Ivan


1.3. Arbeiten mit Attributen



System.Text.Json unterstützt Attribute zur Feinabstimmung der Serialisierung:



public class Product{    [JsonPropertyName("product_id")]    public int Id { get; set; }        [JsonIgnore]    public string InternalCode { get; set; }        [JsonConverter(typeof(JsonStringEnumConverter))]    public ProductCategory Category { get; set; }}

public enum ProductCategory{ Electronics, Clothing, Food}

var product = new Product { Id = 101, InternalCode = "SECRET", Category = ProductCategory.Electronics };

string json = JsonSerializer.Serialize(product);// {"product_id":101,"Category":"Electronics"}// InternalCode wurde dank [JsonIgnore] nicht in JSON aufgenommen


1.4. Serialisierungsoptionen



Sie können das Verhalten des Serialisierers über JsonSerializerOptions anpassen:



var options = new JsonSerializerOptions{    WriteIndented = true,           // Schöne Ausgabe mit Einrückungen    PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // camelCase für Eigenschaften    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull // null ignorieren};

string prettyJson = JsonSerializer.Serialize(person, options);Console.WriteLine(prettyJson);/* Ausgabe:{ "name": "Ivan", "age": 30, "isEmployed": true}*/


2. Newtonsoft.Json (Json.NET) — Bewährtes Werkzeug



Vor der Einführung von System.Text.Json war Newtonsoft.Json der De-facto-Standard für die Arbeit mit JSON in .NET. Es bietet flexiblere Einstellungen und eine breite Palette von Funktionen, ist jedoch in der Leistung unterlegen.



2.1. Installation



Zur Verwendung von Newtonsoft.Json muss das NuGet-Paket installiert werden:



// Über die Package Manager Console:Install-Package Newtonsoft.Json

// Oder über die .NET CLI:dotnet add package Newtonsoft.Json


2.2. Grundlegende Arbeit



using Newtonsoft.Json;

public class Or

Empfehlungen