Bevor wir besprechen, wie man ein JSON-Objekt in C# erstellt, wollen wir zunächst verstehen, was JSON ist. JSON steht für JavaScript Object Notation. Es handelt sich um ein sehr leichtes Textformat, das zum Datenaustausch verwendet wird. JSON kann in drei Stilen ausgedrückt werden: Objekt, Array und String. Hier besprechen wir das JSON-Objekt. Ein JSON-Objekt beginnt mit „{“ und endet mit „}“. Daten im JSON-Objekt werden als Schlüssel-Wert-Paar gespeichert, wobei ein Schlüssel und sein Wert durch einen Doppelpunkt „:“ und jedes Schlüssel-Wert-Paar durch ein Komma „“, getrennt werden.
Syntax:
Die Syntax zum Erstellen von JSON mit dem Newtonsoft-Paket lautet wie folgt:
ClassName objectName = new ClassName(); string jsonStr = JsonConvert.SerializeObject(objectName);
Erklärung: In der obigen Syntax haben wir zuerst das Objekt der Klasse erstellt, für die wir Daten im JSON-Format benötigen, dann haben wir die Methode JsonConvert.Serialize() des Newtonsoft-Pakets verwendet und unser Klassenobjekt als übergeben Ein Parameter für diese Methode, der dann einen JSON-String zurückgibt, nachdem die Daten des Objekts in einen JSON-String konvertiert wurden.
Danach können wir diese JSON-Daten mit den folgenden Anweisungen in einer Datei speichern:
using(var streamWriter = new StreamWriter(filePath, true)) { streamWriter.WriteLine(jsonStr.ToString()); streamWriter.Close(); }
In den obigen Anweisungen haben wir ein StreamWriter-Objekt erstellt, um JSON-Daten in eine Datei zu schreiben, die durch den Speicherort „filePath“ angegeben wird. Dann haben wir mit Hilfe dieses Objekts JSON-Daten mit der Methode WriteLine() in die Datei geschrieben.
In C# können wir JSON-Objekte auf viele Arten erstellen, z. B. durch die Verwendung einer nativen .NET-Bibliothek oder durch die Verwendung von Paketen von Drittanbietern.
Wenn wir die native .NET-Bibliothek zum Erstellen eines JSON-Objekts verwenden möchten, müssen wir System hinzufügen. ServiceModel.Web als Referenz auf unser Projekt. Danach können wir den Namespace System.Runtime.Serialization.Json in unseren Code importieren, der eine Klasse namens DataContractJsonSerializer enthält, die dafür verantwortlich ist, die Objekte in die JSON-Daten zu serialisieren und die JSON-Daten zu deserialisieren zu Objekten.
Abgesehen davon können wir Pakete von Drittanbietern verwenden, um mit JSON zu arbeiten. Wie das Newtonsoft.Json-Paket. Um dieses Paket zu installieren und zu unserem Projekt hinzuzufügen, müssen wir die folgenden Schritte in Visual Studio ausführen:
Nachdem wir diese Schritte ausgeführt haben, werden wir bei der Überprüfung der Referenzen unseres Projekts „Newtonsoft.Json“ hinzufügen.
Wir können jetzt den Newtonsoft.Json-Namespace in unseren Code importieren, der eine Klasse namens JsonConvert enthält, die Methoden für die Konvertierung zwischen .NET-Typen und JSON-Typen bereitstellt.
Beispiel, das die Erstellung eines JSON-Objekts mithilfe der nativen .NET-Bibliothek zeigt.
Code:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; namespace ConsoleApp4 { [DataContractAttribute] public class Student { [DataMemberAttribute] public int RollNo { get; set; } [DataMemberAttribute] public string FirstName { get; set; } [DataMemberAttribute] public string LastName { get; set; } [DataMemberAttribute] public string Address { get; set; } [DataMemberAttribute] public float TotalMarks { get; set; } public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { MemoryStream memoryStream = new MemoryStream(); //serializing object to JSON DataContractJsonSerializer ser = new DataContractJsonSerializer(student.GetType()); //writing JSON ser.WriteObject(memoryStream, student); memoryStream.Position = 0; StreamReader streamReader = new StreamReader(memoryStream); jsonStr = streamReader.ReadToEnd(); Console.WriteLine(jsonStr); } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Ausgabe:
Beispiel zeigt die Erstellung eines JSON-Objekts mithilfe der nativen .NET-Bibliothek und das anschließende Schreiben der resultierenden JSON-Daten in eine Datei mithilfe von StreamWriter.
Code:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; namespace ConsoleApp4 { [DataContractAttribute] public class Student { [DataMemberAttribute] public int RollNo; [DataMemberAttribute] public string FirstName; [DataMemberAttribute] public string LastName; [DataMemberAttribute] public string Address; [DataMemberAttribute] public float TotalMarks; public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; string filePath = @"E:\Content\student.json"; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { MemoryStream memoryStream = new MemoryStream(); //serializing object to JSON DataContractJsonSerializer ser = new DataContractJsonSerializer(student.GetType()); //writing JSON ser.WriteObject(memoryStream, student); memoryStream.Position = 0; StreamReader streamReader = new StreamReader(memoryStream); jsonStr = streamReader.ReadToEnd(); //checking if the file already exists if (File.Exists(filePath)) { //deleting file if it exists File.Delete(filePath); } //creating StreamWriter to write JSON data to file using (StreamWriter streamWriter = new StreamWriter(filePath, true)) { streamWriter.WriteLine(jsonStr.ToString()); streamWriter.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Unten finden Sie den Screenshot der Ausgabe des oben genannten Programms in der Datei student.json, die im Editor geöffnet wurde.
Ausgabe:
Beispiel, das die Erstellung eines JSON-Objekts mit dem Newtonsoft-Paket zeigt.
Code:
using System; using Newtonsoft.Json; namespace ConsoleApp4 { public class Student { public int RollNo; public string FirstName; public string LastName; public string Address; public float TotalMarks; public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { //serializing student object to JSON string jsonStr = JsonConvert.SerializeObject(student); Console.WriteLine(jsonStr); } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Ausgabe:
JSON-Objekte sind in geschweifte Klammern eingeschlossen und enthalten Schlüssel-Wert-Paare. Ein Schlüssel und sein Wert werden durch einen Doppelpunkt getrennt, wobei der Schlüssel eine Zeichenfolge sein muss und der Wert einen beliebigen gültigen Datentyp haben kann. Jedes Schlüssel-Wert-Paar im JSON-Objekt wird durch ein Komma getrennt.
Das obige ist der detaillierte Inhalt vonC# JSON-Objekt erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!