JSON in C# in Datei schreiben

Muhammad Zeeshan 15 Februar 2024
  1. Das JSON-Format
  2. Laden Sie Json.NET herunter und installieren Sie es
  3. JSON mit Json.NET in Datei schreiben
JSON in C# 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.

  1. Um loszulegen, müssen wir den Microsoft Visual Studio-Arbeitsplatz vorbereiten und das Paket Newtonsoft installieren.

  2. Starten Sie Microsoft Visual Studio und wählen Sie in der Menüleiste Datei, dann Neu und die Option Projekt.

  3. Wählen Sie auf der linken Seite Visual C# und klicken Sie dann auf Console 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 auf OK.

    Json.NET installieren - neue Datei

  4. Nachdem das Projekt erstellt wurde, fügen wir einen Verweis auf Json.NET ein. Dazu klicken wir mit der rechten Maustaste auf den Bereich Solution Explorer und wählen Manage NuGet Packages for Solution.

  5. Nachdem Sie Newtonsoft.Json ausgewählt haben, wählen Sie im rechten Bereich Installieren.

    Json.NET installieren

  6. Nach Abschluss des Downloads wird die Komponente installiert und Json.NET zeigt ein Häkchen in der Farbe Grün an.

    Json.NET herunterladen

  7. Nun werden Sie feststellen, dass eine Referenz für Newtonsoft.json hinzugefügt wurde, wenn Sie im Solution Explorer auf Referenz gehen. Nachdem Newtonsoft.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.

  1. 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;
    
  2. Um eine Klasse hinzuzufügen, klicken Sie mit der rechten Maustaste auf das Bedienfeld Solution Explorer, klicken Sie mit der linken Maustaste auf Hinzufügen und wählen Sie eine Klasse aus dem Dropdown-Menü aus. Nachdem Sie ihm einen akzeptablen Namen gegeben haben, wie wir ihn der Klasse Schüler genannt haben, klicken Sie im letzten Schritt auf die Schaltfläche Hinzufügen.

    C# JSON in Datei schreiben – Schülerklasse hinzufügen

  3. Beginnen wir mit der Definition der Variablenobjekte in der neuen Klasse, nachdem wir sie erfolgreich erstellt haben. Wir haben Name, Rollnum, Grade und City in die Klasse Student 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";
    }
    
  4. Wir erstellen also eine Instanz der Klasse Student mit dem Namen s in unserer Funktion Main.

    Student s = new Student();
    
  5. 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 namens SerializedJsonResult einfügen.

    string SerializedJsonResult = JsonConvert.SerializeObject(s);
    
  6. 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";
    
  7. 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();
      }
    }
    
  8. 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"}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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.

LinkedIn

Verwandter Artikel - Csharp JSON

Verwandter Artikel - Csharp File