Heim  >  Artikel  >  Backend-Entwicklung  >  C# JSON-Objekt erstellen

C# JSON-Objekt erstellen

WBOY
WBOYOriginal
2024-09-03 15:31:12612Durchsuche

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.

Wie können wir ein JSON-Objekt in C# erstellen?

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:

  • Gehen Sie zu Extras > NuGet-Paketmanager > Verwalten Sie NuGet-Pakete für die Lösung.

C# JSON-Objekt erstellen

  • Suchen Sie auf der Registerkarte „Durchsuchen“ nach dem Paket „Newtonsoft.Json“ und wählen Sie es aus den angezeigten Ergebnissen aus. Wählen Sie dann Ihr Projekt aus, zu dem Sie dieses Paket hinzufügen möchten.
  • Klicken Sie auf die Schaltfläche „Installieren“.

C# JSON-Objekt erstellen

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.

Beispiele für C# zum Erstellen eines JSON-Objekts

Beispiel, das die Erstellung eines JSON-Objekts mithilfe der nativen .NET-Bibliothek zeigt.

Beispiel #1

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:

C# JSON-Objekt erstellen

Beispiel #2

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:

C# JSON-Objekt erstellen

Beispiel #3

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:

C# JSON-Objekt erstellen

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:C#-TupelNächster Artikel:C#-Tupel