Einführung:
Das Parsen von JSON in C# ist eine häufige Aufgabe für Entwickler, die Anwendungen erstellen, die JSON-Daten nutzen. JSON repräsentiert JavaScript-Objekt-Notation Es handelt sich um ein leichtes Format zur Änderung der Datendarstellung, das für normale Benutzer optimal zum Lesen und Schreiben geeignet ist und für Maschinen leicht zu analysieren und zu generieren ist. In diesem Artikel sehen wir uns an, wie man JSON in C# mithilfe der integrierten Funktion analysiert .NET JSON Parsen von Bibliotheken.
JSON-Parsing in C# kann auf verschiedene Arten erreicht werden: mit Newtonsoft.Json-Bibliothek oder mit der System.Text.Json-Bibliothek eingeführt .NET Core 3.0 . Beide Bibliotheken sind beliebte Optionen für das JSON-Parsing in C# und bieten ähnliche Funktionalitäten.
Methode 1: Verwenden des Newtonsoft.Json-Pakets
Eines der beliebtesten Pakete zum Parsen von JSON in C# ist Newtonsoft.Json . Es handelt sich um ein Paket eines Drittanbieters, das eine einfache und flexible Möglichkeit zum Serialisieren und Deserialisieren von JSON-Daten bietet.
Benutzen Newtonsoft.Json In Ihrem C#-Projekt müssen Sie es zuerst installieren. Sie können es über installieren NuGet Paketmanager in Visual Studio oder indem Sie den folgenden Befehl in der Paket-Manager-Konsole ausführen:
np.linspace
Code:
Install-Package Newtonsoft.Json
Nach der Installation können Sie es in Ihrem Code verwenden. Hier ist ein Beispiel für die Analyse von JSON mit Newtonsoft.Json:
C#-Code:
using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city);
In diesem Beispiel definieren wir einen JSON-String und deserialisieren ihn mithilfe von JsonConvert.DeserializeObject Methode bereitgestellt von Newtonsoft.Json . Die Methode gibt ein dynamisches Objekt zurück, das uns den Zugriff auf die JSON-Daten mithilfe der Eigenschaftensyntax ermöglicht.
Binärbaum-Inorder-Traversierung
Methode 2: Verwenden des System.Text.Json-Namespace
Beginnen mit .NET Core 3.0 Und .NET 5.0, C# bietet außerdem eine integrierte JSON-Parsing-Bibliothek namens System.Text.Json . Es handelt sich um einen leichten und schnellen JSON-Serialisierer und Deserialisierer, der im enthalten ist .NETZ Laufzeit.
Hier ist ein Beispiel für die Analyse von JSON mit System.Text.Json:
C#-Code:
using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city);
In diesem Beispiel verwenden wir die JsonDocument.Parse Methode bereitgestellt von System.Text.Json um die JSON-Zeichenfolge zu analysieren. Die Methode gibt a zurück JsonDocument Objekt, das die analysierten JSON-Daten darstellt. Anschließend können wir mit dem auf die JSON-Daten zugreifen JsonElement Klasse und ihre GetProperty Methode.
Methode 3: Verwenden der JavaScriptSerializer-Klasse
Eine andere Möglichkeit, JSON in C# zu analysieren, ist die Verwendung von JavaScriptSerializer Klasse, die Teil der ist System.Web.Extensions Montage. Diese Klasse wurde eingeführt. NET Framework 3.5 und bietet eine einfache Möglichkeit, JSON-Daten in ein stark typisiertes Objekt zu deserialisieren.
Konvertierung von String nach Int in Java
Um das zu nutzen JavaScriptSerializer -Klasse müssen Sie eine Klasse erstellen, die das JSON-Objekt darstellt, das Sie deserialisieren möchten. Die Klasse sollte über Eigenschaften verfügen, die mit den Namen und Datentypen der Eigenschaften des JSON-Objekts übereinstimmen. Angenommen, Sie haben das folgende JSON-Objekt:
JSON-Objekt:
{ 'name': 'John Doe', 'age': 30, 'email': '[email protected]' }
Sie können eine Klasse erstellen, die dieses Objekt wie folgt darstellt:
'prim's Algorithmus'
C#-Code:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }
Sobald Sie die Klasse definiert haben, können Sie die verwenden JavaScriptSerializer Klasse, um die JSON-Daten in eine Instanz der Person-Klasse zu deserialisieren:
C#-Code:
string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json);
Im obigen Beispiel haben wir zunächst einen String definiert, der die JSON-Daten enthält. Anschließend haben wir eine Instanz davon erstellt JavaScriptSerializer Klasse und nutzte deren Deserialize-Methode, um die JSON-Daten in eine Instanz der Person-Klasse zu analysieren.
Es ist erwähnenswert, dass die JavaScriptSerializer Die Klasse weist im Vergleich zu den beiden anderen Methoden, die wir besprochen haben, Einschränkungen auf. Beispielsweise werden einige der erweiterten Funktionen von JSON nicht unterstützt, z. B. die Verarbeitung von Nullwerten oder die Konvertierung zwischen den Namenskonventionen camelCase und PascalCase. Es bietet auch keine integrierte Unterstützung für die Deserialisierung von JSON-Arrays.
Abschluss:
In diesem Artikel haben wir zwei Möglichkeiten zum Parsen von JSON in C# untersucht: mithilfe von Newtonsoft.Json Bibliothek und Nutzung der System.Text.Json Bibliothek. Beide Bibliotheken bieten leistungsstarke JSON-Parsing-Funktionen und werden häufig von Entwicklern verwendet, die C#-Anwendungen erstellen, die JSON-Daten nutzen.