JSON in C# in Datei schreiben
- Das JSON-Format
-
Laden Sie
Json.NET
herunter und installieren Sie es -
JSON mit
Json.NET
in Datei schreiben
In diesem Beitrag erfahren Sie, wie Sie mit der Programmiersprache C# grundlegende JSON-Objekte erstellen und in eine Datei schreiben. Zunächst müssen Sie ein solides Verständnis davon haben, was JSON ist.
Das JSON-Format
JSON steht für JavaScript Object Notation und ist ein Standard zum Austausch minimaler Daten. Es verwendet einen Teil der JavaScript-Programmiersprache als Grundlage.
JSON ist eine völlig sprachunabhängige Struktur und verwendet keine Sonderzeichen. Es ist für Menschen einfach, in JSON zu lesen und zu schreiben, und für Computer, um JSON-Daten zu erzeugen und zu interpretieren.
Als Alternative zu XML bietet es integrierte Unterstützung für die grundlegendsten Datentypen. Der Begriff JavaScript Object Notation bezieht sich auf die Syntax, die sowohl in JavaScript als auch in JSON verwendet wird.
Da es sich um eine textbasierte Sprache handelt, ist sie für den Benutzer einfacher zu lesen und gleichzeitig für Maschinen einfacher zu interpretieren. Noch vor wenigen Jahren verließen sich Programmierer auf XML, um die Kommunikation zwischen verschiedenen Dienstanwendungen wie Webdiensten zu erleichtern.
Benutzer begannen jedoch, JSON als möglichen alternativen Datenserialisierungsstandard zu untersuchen, als die Web-API an Popularität gewann.
Laden Sie Json.NET
herunter und installieren Sie es
Um Daten im JSON-Format zu serialisieren, können wir entweder die native Klasse verwenden, die von .NET Framework bereitgestellt wird, oder eine andere Komponente von Drittanbietern verwenden. Wir werden die Serialisierungsbibliothek NewtonSoft
verwenden, um die JSON-Struktur in diesem Tutorial zu serialisieren.
-
Um loszulegen, müssen wir den Microsoft Visual Studio-Arbeitsplatz vorbereiten und das Paket
Newtonsoft
installieren. -
Starten Sie Microsoft Visual Studio und wählen Sie in der Menüleiste
Datei
, dannNeu
und die OptionProjekt
. -
Wählen Sie auf der linken Seite
Visual C#
und klicken Sie dann aufConsole App (.NET Framework)
. Geben Sie einen geeigneten Namen ein und suchen Sie Ihr Projekt.Wir haben es
writejsonByZeeshan
genannt. Nachdem Sie ihm einen Namen gegeben haben, klicken Sie aufOK
. -
Nachdem das Projekt erstellt wurde, fügen wir einen Verweis auf
Json.NET
ein. Dazu klicken wir mit der rechten Maustaste auf den BereichSolution Explorer
und wählenManage NuGet Packages for Solution
. -
Nachdem Sie
Newtonsoft.Json
ausgewählt haben, wählen Sie im rechten BereichInstallieren
. -
Nach Abschluss des Downloads wird die Komponente installiert und
Json.NET
zeigt ein Häkchen in der Farbe Grün an. -
Nun werden Sie feststellen, dass eine Referenz für
Newtonsoft.json
hinzugefügt wurde, wenn Sie imSolution Explorer
auf Referenz gehen. NachdemNewtonsoft.json
hinzugefügt wurde, ist es Zeit für uns, den Code zu konstruieren, der JSON erstellt.
JSON mit Json.NET
in Datei schreiben
Der Verweis auf Newtonsoft
war bereits bei der Entwicklung unserer Lösung enthalten. Jetzt ist es an der Zeit, mit der Arbeit am ersten Code zu beginnen, der eine JSON serialisiert und produziert.
Beginnen wir mit einer grundlegenden JSON-Struktur, und gehen wir dann im weiteren Verlauf schrittweise zu komplizierteren Strukturen über, während wir Zeile für Zeile durch den Code gehen und seine Funktionsweise eingehender analysieren. Beginnen wir damit, eine Struktur in eine JSON-Datei einzufügen, indem wir unserem Projekt zunächst eine neue Klasse hinzufügen.
-
Fügen Sie zunächst die folgenden Bibliotheken in
Main()
hinzu:using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks;
-
Um eine Klasse hinzuzufügen, klicken Sie mit der rechten Maustaste auf das Bedienfeld
Solution Explorer
, klicken Sie mit der linken Maustaste aufHinzufügen
und wählen Sie eine Klasse aus dem Dropdown-Menü aus. Nachdem Sie ihm einen akzeptablen Namen gegeben haben, wie wir ihn der KlasseSchüler
genannt haben, klicken Sie im letzten Schritt auf die SchaltflächeHinzufügen
. -
Beginnen wir mit der Definition der Variablenobjekte in der neuen Klasse, nachdem wir sie erfolgreich erstellt haben. Wir haben
Name
,Rollnum
,Grade
undCity
in die KlasseStudent
aufgenommen und die folgenden Werte zugewiesen.class Student { public string Name = "Muhammad Zeeshan"; public int Rollnum = 3227; public string Grade = "A"; public string City = "Islamabad"; }
-
Wir erstellen also eine Instanz der Klasse
Student
mit dem Namens
in unserer FunktionMain
.Student s = new Student();
-
Dann wandeln wir mit der Methode
JsonConvert.SerializeObject
das Klassenobjekt, das wir gerade angegeben haben, in das JSON-Format um. Lassen Sie uns die serialisierten Daten in eine String-Variable namensSerializedJsonResult
einfügen.string SerializedJsonResult = JsonConvert.SerializeObject(s);
-
Nachdem die Daten nun in ein JSON-Format serialisiert wurden, müssen wir einen Speicherort angeben, an dem sie gespeichert werden können. Dafür wird eine String-Variable namens
jsonpath
verwendet.string jsonpath = "D:/jsondata/studentdata.json";
-
Wir verwenden die
if
-Bedingung, um den Pfad zu überprüfen, ob er korrekt ist oder nicht. Wenn der Pfad bereits vorhanden ist, überschreibt der Code den vorhandenen, indem er einen neuen erstellt und den alten zerstört.if (File.Exists(jsonpath)) { File.Delete(jsonpath); using (var st = new StreamWriter(jsonpath, true)) { st.WriteLine(SerializedJsonResult.ToString()); st.Close(); } }
-
Wenn der Pfad nicht verfügbar ist, erstellt
else-if
einen neuen Pfad und schreibt den JSON in die Datei.else if (!File.Exists(jsonpath)) { using (var st = new StreamWriter(jsonpath, true)) { st.WriteLine(SerializedJsonResult.ToString()); st.Close(); } }
Vollständiger Quellcode
Beispielcode (Klasse Student
):
class Student {
public string Name = "Muhammad Zeeshan";
public int Rollnum = 3227;
public string Grade = "A";
public string City = "Islamabad";
}
Beispielcode (Klasse Haupt
):
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace writejsonByZeeshan {
class Program {
static void Main(string[] args) {
Student s = new Student();
string SerializedJsonResult = JsonConvert.SerializeObject(s);
string jsonpath = "D:/jsondata/studentdata.json";
if (File.Exists(jsonpath)) {
File.Delete(jsonpath);
using (var st = new StreamWriter(jsonpath, true)) {
st.WriteLine(SerializedJsonResult.ToString());
st.Close();
}
}
else if (!File.Exists(jsonpath)) {
using (var st = new StreamWriter(jsonpath, true)) {
st.WriteLine(SerializedJsonResult.ToString());
st.Close();
}
}
}
}
}
Ausgang:
{"Name":"Muhammad Zeeshan","Rollnum":3227,"Grade":"A","City":"Islamabad"}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedInVerwandter Artikel - Csharp JSON
- C# Parsen JSON
- C# Konvertieren des Objekts in eine JSON-Zeichenkette
- JSON mit C# deserialisieren
- Posten Sie JSON auf einem Server in C#
- Konvertieren JSON-String in ein C#-Objekt