how create json structure using c
Erstellen einer JSON-Struktur (Teil 2):
In unserem vorherigen Tutorial haben wir darüber gesprochen Erstellen einer einfachen JSON-Datei mithilfe von Beispieldatensätzen .
Wir haben auch die Details zur Verwendung eines json.Net-Frameworks zum Serialisieren von Daten im JSON-Format kennengelernt. Wir haben C # und Visual Studio genutzt, um eine einfache Konsolenanwendung zur Verwendung der von uns bereitgestellten Daten und Schlüsselwerte zu erstellen, und diese Schlüsselwerte dann in die JSON-Struktur serialisiert. Lassen Sie uns nun sehen, was dieses Tutorial im weiteren Verlauf behandelt.
In diesem Tutorial werden die Möglichkeiten zum Erstellen einer komplexeren JSON-Struktur erläutert. Wir werden Arrays mit mehreren Datensätzen erstellen und auch untersuchen, wie verschachtelte Strukturen in JSON erstellt werden können.
Die meisten JSON-Dateien, die für die Datenübertragung zwischen verschiedenen Systemen verwendet werden, enthalten komplexere Datenstrukturen. Wenn Sie sich mit der komplexen JSON-Struktur vertraut machen, können Sie Testdaten basierend auf den Anforderungen des JSON-Schemas erstellen.
Was du lernen wirst:
- Code schreiben
- Hinzufügen eines Arrays mit mehreren Daten zu JSON
- Ausführen von Vorgängen für Daten vor dem Zuweisen zu JSON-Schlüsseln
- Erstellen einer verschachtelten JSON-Struktur
- Verwenden einer Excel-Tabelle als Datenquelle für JSON
- Fazit
- Literatur-Empfehlungen
Code schreiben
Wir werden in diesem Tutorial auf unseren vorherigen Beitrag verweisen. Daher würde ich jedem empfehlen, zuerst das frühere Tutorial durchzugehen, bevor er mit diesem fortfährt.
Wir werden dieselben JSON-Daten verwenden, die wir in unserem vorherigen Tutorial verwendet haben. Wir werden auch den gleichen Satz von Code weiterverfolgen, den wir für unser vorheriges JSON-Beispiel geschrieben haben.
Lass uns anfangen.!!
Hinzufügen eines Arrays mit mehreren Daten zu JSON
Um dem JSON ein Array hinzuzufügen, fügen wir unserem vorherigen Datensatz einen Array-Schlüssel hinzu.
Unser Datensatz wird wie folgt aussehen:
Das Hinzufügen eines Array-Objekts zum JSON ähnelt dem Hinzufügen anderer Schlüsselwerte. Werte können direkt zum Zeitpunkt der Deklaration des Arrays selbst zugewiesen werden. Sobald die Werte einem Array zugewiesen wurden, serialisiert JSON newtonsoft die Objekte in Schlüssel-Wert-Paare.
Um das Array im JSON hinzuzufügen, deklarieren wir es im 'Mitarbeiter' Klasse selbst. (Weitere Informationen finden Sie in unserem vorherigen Tutorial.)
namespace jsonCreate { class Employee { public string FirstName = 'Sam'; public string LastName = 'Jackson'; public int employeeID = 5698523; public string Designation = 'Manager'; public string() KnownLanguages = { 'C#', 'Java', 'Perl' }; } }
Wie Sie sehen, haben wir das Array direkt in der Employee-Klasse deklariert. Nehmen Sie keine Änderungen an der Hauptmethode vor. Das Erstellen einer anderen Klasse für JSON-Objekte hilft uns dabei, Objekte organisiert zu halten.
Wenn Änderungen an der JSON-Struktur vorgenommen werden oder wenn Sie einen weiteren Datensatz hinzufügen möchten, müssen Sie nur die Änderungen in dieser bestimmten Klassendatei vornehmen, anstatt Änderungen im gesamten Projekt vorzunehmen. Dies bedeutet, dass Ihre Main-Methode die meiste Zeit dieselbe bleibt und die Änderungen nur innerhalb der Klassen vorgenommen werden.
Führen Sie das Programm aus und erstellen Sie unsere JSON-Datei mit dem Array.
Kopieren Sie nun den Inhalt und fügen Sie ihn ein Hier um zu überprüfen, ob der erstellte JSON gültig ist oder nicht.
Klicke auf das Überprüfen Sie JSON Schaltfläche, um es zu validieren. Die JSON-Schlüssel-Wert-Paare werden angeordnet und die Validierung des angegebenen Datensatzes durchgeführt.
Ausführen von Vorgängen für Daten vor dem Zuweisen zu JSON-Schlüsseln
Nehmen wir an, wir haben einige Daten und möchten diese Daten bearbeiten, bevor wir sie den JSON-Schlüsseln als Werte zuweisen.
Wie machen wir das in einem solchen Fall?
Zum Beispiel: Nehmen wir an, die Mitarbeiter-ID, die wir an JSON übergeben haben, besteht aus zwei Teilen. Die ersten drei Buchstaben bezeichnen den Standortcode und die letzten vier Ziffern die Mitarbeiternummer. Wenn Sie beide verketten, erhalten Sie die Mitarbeiter-ID eines Mitarbeiters.
Falls wir den Standortcode und die Mitarbeiternummer separat erhalten, müssen wir sie miteinander verketten, um eine Mitarbeiter-ID zu bilden. Nur dann können wir es durch den JSON leiten.
Um diese Art von Szenarien zu überwinden, müssen wir Operationen an den Daten ausführen, bevor wir sie einem Schlüssel zuweisen.
Schauen wir uns an, wie das geht.
Kehren wir zu unserer Mitarbeiterklasse zurück und erstellen eine weitere Klasse, in der wir alle Vorgänge ausführen.
Hier erstellen wir eine weitere Klasse, die die Vorgänge für die Mitarbeiterdaten enthält und ausführt.
Erstellen wir eine neue Klasse 'EmployeeData'.
Die Klasse wurde erstellt. Jetzt erstellen wir eine Methode mit öffentlichem Zugriffsspezifizierer und Rückgabetyp als unsere Klasse 'Mitarbeiter'. Wir haben den Methodennamen als angegeben 'EmployeeDataOps' . Sie können jedoch Ihren eigenen Namen angeben. Um dies zu vereinfachen, übergebe ich innerhalb dieser Methode keinen Parameter.
Da wir den Rückgabetyp als Klasse beschrieben haben, müssen wir eine Instanz der Employee-Klasse zurückgeben. Dazu erstellen wir ein Klassenobjekt innerhalb der Methode.
Hier haben wir ein Objekt für die Employee-Klasse mit dem Namen erstellt EmpObj und am Ende der Methode haben wir das Objekt zurückgegeben.
Definieren wir zwei Ganzzahlen innerhalb der EmployeeData-Klasse, die den vollständigen Standortcode und die Mitarbeiternummer darstellen. Einmal deklariert, werden wir es verwenden, um Operationen auszuführen und dann den jeweiligen Schlüsseln Werte zuzuweisen.
int locationCode = 569; int employeeNumber = 8523;
Da wir nun den Standortcode und die Mitarbeiternummer haben, können wir Operationen an ihnen ausführen, um die Mitarbeiter-ID zu finden. Dazu schreiben wir einen einfachen Code, um beide Ganzzahlen zu verketten.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Dadurch werden einfach beide Ganzzahlen verkettet, die die Mitarbeiter-ID bilden. Wir haben die Mitarbeiter-ID unter der Variablen gespeichert 'EmpID' und jetzt übergeben wir diese Variable in EmpObj an 'employeeID'.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Der gesamte Beispielcode sieht wie folgt aus:
beste Game-Making-Software für Anfänger
Haben Sie bemerkt, dass wir den Wert entfernt haben, den wir zuvor der Variablen employeeID in der Employee-Klasse zugewiesen haben? Wir haben dies getan, als wir den Wert von zurückgeben EmployeeDataOps () Methode. Daher werden die Daten zu den Variablen von dieser Methode selbst eingespeist. Dadurch entfällt die Notwendigkeit, Werte direkt zu deklarieren.
Orakel plsql Interview Fragen für erfahrene
Da wir jetzt mit der Methode fertig sind, müssen wir der Hauptmethode eine Instanz dieser Methode hinzufügen, damit diese Methode aufgerufen werden kann.
Dazu erstellen wir ein weiteres Klassenobjekt in der Hauptmethode für 'EmployeeData' Klasse.
EmployeeData empData = new EmployeeData();
Nachdem wir ein Klassenobjekt erstellt haben, weisen wir die Methode innerhalb dieser Klasse dem Emp-Objekt zu, das wir zuvor für die Mitarbeiterklasse erstellt haben.
emp = empData.EmployeeDataOps();
Schließlich sieht der Code in der Hauptmethode folgendermaßen aus:
Lassen Sie uns einige Testdaten einfügen:
Standortcode = 123
Mitarbeiternummer = 9874
Wir werden diese Daten in den Code und mit den endgültigen Änderungen in der Hauptmethode einfügen. Wir haben jetzt unseren Code vervollständigt. Lassen Sie uns nun den Code ausführen und unseren JSON validieren.
Dies ist der JSON, der erstellt wurde:
Wie Sie sehen, wurde der neue verkettete Wert für die Mitarbeiter-ID in den JSON-Wert eingegeben.
Kopieren Sie diesen JSON und fügen Sie ihn ein Hier seine Struktur zu validieren. Fügen Sie den Text in die JSON-Flusenseite ein.
Verwenden Sie die Schaltfläche Validieren, um die Struktur wie folgt zu validieren:
Erstellen einer verschachtelten JSON-Struktur
In dem bisher diskutierten Beispiel werden hauptsächlich Zeichenfolgen- und numerische Werte in einem Array oder Objekt verwendet. JSON kann aber auch verwendet werden, um ein gesamtes JSON-Objekt auszudrücken, indem derselbe Begriff wie ein Array-Element verwendet wird. Die Objektmitglieder in der Liste können ihre eigenen Objekte und Array-Schlüssel verwenden.
In der Einführung in JSON, einem unserer früheren Tutorials, haben wir uns zunächst angesehen, wie ein verschachtelter JSON aussieht. In diesem Tutorial gehen wir davon aus, dass der Mitarbeiter auch ein Auto hat und der JSON auch alle Details zum Mitarbeiterauto enthalten sollte.
Die JSON-Struktur, die wir am Ende erhalten, sieht also folgendermaßen aus:
Hier haben wir den Mitarbeiter-JSON mit allen Daten, dann haben wir auch ein Auto-JSON-Objekt, das im Mitarbeiter-JSON verschachtelt ist. Das Autoobjekt verfügt über einen eigenen Satz von Schlüsseln und Werten.
Versuchen wir, diesen JSON programmgesteuert zu erstellen.
Dazu beginnen wir mit demselben JSON, den wir in unserem vorherigen Tutorial erstellt haben. Zur Vereinfachung erstellen wir das neue JSON-Objekt (d. H. Car JSON) in einer neuen Klasse. Wir werden ein neues Klassenauto hinzufügen und alle Objekte in dieser Klasse mit einem öffentlichen Zugriffsspezifizierer hinzufügen.
Jetzt können wir entweder den Wert direkt hier hinzufügen oder eine neue Klasse schreiben und eine benutzerdefinierte Methode mit einem Klassenobjekt-Rückgabetyp erstellen, um die Werte ähnlich wie im vorherigen Lernprogramm zuzuweisen. Der Einfachheit halber weisen wir den Wert direkt den Schlüsselvariablen zu.
Jetzt haben wir eine neue Klasse mit den Objekten und Werten erstellt. Im nächsten Schritt fügen wir dies der JSON-Struktur des Mitarbeiters hinzu, sodass bei der JSON-Serialisierung die Schlüsselwerte aus der Car-Klasse zusammen mit der Mitarbeiterklasse als auch serialisiert werden sollten verschachtelt JSON.
Dazu müssen wir zunächst der Klasse Employee ein Objekt vom Typ class car hinzufügen. In diesem Objekt werden die in der Car-Klasse vorhandenen Werte gespeichert.
Wie oben gezeigt, haben wir die neue Variable mit dem Datentyp als Fahrzeugklasse zugewiesen. Gehen wir nun zur EmployeeDataOps () -Methode, die wir in der EmployeeData-Klasse erstellt haben. Wir werden den Code schreiben, um die Variablen und Werte aus der Car-Klasse aufzurufen.
Erstellen wir zunächst ein Klassenobjekt für die Fahrzeugklasse:
Car carObj = new Car();
Dieses Objekt enthält alle Daten aus der Fahrzeugklasse. Nachdem wir alle Daten aus der Fahrzeugklasse in diesem Objekt deklariert haben, besteht der nächste Schritt darin, diese Daten (Daten, die im Fahrzeugobjekt enthalten sind) der Fahrzeugvariablen zuzuweisen, die wir zum Speichern dieser Daten erstellt haben.
Dazu verwenden wir einfach das von uns erstellte Employee-Objekt, um auf die Fahrzeugvariable zuzugreifen. Und dann können wir das Autoobjekt mit den Daten direkt der Autovariablen zuordnen.
EmpObj.car = carObj;
Das ist es. Wir haben eine Variable in einer Klasse erstellt und dann ein anderes Objekt erstellt, um auf den Wert einer anderen Klasse zuzugreifen. Anschließend haben wir den Wert der ersten Variablen zugewiesen.
Lassen Sie uns nun unser Programm ausführen und prüfen, ob es den gewünschten JSON erstellen kann.
Wie oben gezeigt, wurde ein Auto-JSON-Schlüssel erstellt, der alle Daten enthält, die wir als Schlüssel und Werte in die Fahrzeugklasse eingegeben haben. Jetzt werden wir den JSON-Inhalt erneut kopieren und navigieren Hier um den JSON zu validieren.
Kopieren Sie einfach den gesamten JSON-Inhalt in den Textbereich und klicken Sie auf “JSON validieren ' Taste.
Daher hat die JSONlint-Site unsere Daten angeordnet und perfekt validiert. Wir können sehen, dass das 'Auto' -Objekt in der JSON-Struktur nach Bedarf angeordnet wurde. Mit demselben Prozess können Sie mehrere Ebenen von verschachteltem JSON erstellen. Fügen Sie der Klasse einfach das JSON-Objekt hinzu und weisen Sie seinen Wert einer Klassenvariablen zu.
Wie Sie sehen, müssen wir in unserer Hauptmethode nicht einmal Code ändern.
Verwenden einer Excel-Tabelle als Datenquelle für JSON
In unseren vorherigen Tutorials haben wir verschiedene Möglichkeiten zum Erstellen unterschiedlicher JSON-Strukturen erläutert. Bei all unseren Strukturen gab es jedoch ein großes Problem. Wir haben die Werte für die Schlüssel immer hart codiert.
In diesem Tutorial werden wir die Möglichkeiten diskutieren, wie wir ein Excel-Blatt verwenden können, um die Daten den JSON-Schlüsseln zuzuführen. Ich würde Ihnen empfehlen, alle zuvor besprochenen Tutorials durchzugehen, bevor Sie mit diesem fortfahren, da wir denselben Code diskutieren werden, den wir in den vorherigen Tutorials geschrieben haben.
Wenn Sie Schritt für Schritt vorgehen, können Sie das gesamte Konzept besser verstehen.
Ich hoffe, ihr habt den grundlegenden Code zum Erstellen eines JSON verstanden. In diesem Teil werden wir dieselbe Codestruktur weiterentwickeln.
Zunächst erstellen wir eine Excel-Datei mit JSON-Daten.
Wir haben eine employeeData.xlsx-Datei mit den folgenden Details erstellt.
Bevor wir mit dem Schreiben des Codes zum Extrahieren von Werten aus dem Excel beginnen, müssen wir unserem Projekt einen Assemblyverweis hinzufügen. Für den Zugriff auf Office-Objekte bietet C # Microsoft Office Interop an. Diese sind sehr hilfreich, um einen einfachen Zugriff auf die Büroobjekte zu ermöglichen.
oops Konzepte in c # mit Beispielen
Da wir in diesem Projekt Excel verwenden, verwenden wir die Microsoft Office Interop Excel-Assemblyreferenz.
Um es zu installieren, Klicken Sie mit der rechten Maustaste auf die Referenzen in Ihrem Lösungs-Explorer und wählen Sie dann NuGet-Pakete verwalten . Schreiben Sie Microsoft Office Interop Excel in die Suchleiste, und im Suchergebnis wird das erforderliche Paket angezeigt.
Sobald Sie Microsoft Office Interop Excel erhalten haben, klicken Sie auf Schaltfläche Installieren um es zu installieren.
Nach Abschluss der Installation können Sie sehen, dass Microsoft Office Interop Excel zur Liste der Assemblyreferenzen im Projekt hinzugefügt wurde.
Lassen Sie uns zunächst die verschiedenen Excel-Elemente zuweisen.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Hier haben wir der Excel-Anwendung, der Excel-Arbeitsmappe und dem Excel-Arbeitsblatt Werte zugewiesen. Sobald diese definiert sind, werden wir diese in unseren nächsten Schritten verwenden, um auf die Werte in der Excel-Tabelle zuzugreifen.
Welche Schritte befolgen wir im Allgemeinen, wenn wir einen Wert aus einer Excel-Tabelle abrufen möchten?
Zuerst greifen wir auf die Excel-Anwendung zu, öffnen dann die Excel-Arbeitsmappe und das Excel-Arbeitsblatt und suchen das Element später anhand seiner Zeilen- und Spaltenwerte. Wir werden hier etwas Ähnliches tun.
Dieser Code greift auf die Excel-Anwendung zu.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Dieser Code öffnet die Arbeitsmappe mit dem angegebenen Namen am angegebenen Speicherort.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Jetzt schreiben wir einen Code, um auf das jeweilige Arbeitsblatt in der Arbeitsmappe zuzugreifen. Wir haben ein Arbeitsblatt mit dem Namen 'Sheet1' (der Standardname im Excel-Blatt).
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Nachdem wir auf das Arbeitsblatt zugegriffen haben, besteht der nächste Schritt darin, die richtige Spalte und die richtigen Daten zu finden. Zuerst suchen wir nach einer Spalte mit dem „Schlüssel“.
Zum Beispiel, Suchen wir zunächst nach der Spalte mit dem Wert 'Vorname'. Sobald wir den Wert gefunden haben, extrahieren wir die Spaltennummer. Wie wir wissen, enthält die erste Zeile die Überschrift und die zweite Zeile unsere Daten. Daher verwenden wir die Spaltennummer und die Zeilennummer, um die genauen Daten zu extrahieren.
Dadurch wird die Spaltennummer für den Vornamen in der Variablen gespeichert.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Jetzt verwenden wir die Spaltennummer des Vornamens, um den Wert aus der Zelle darunter zu extrahieren. Wie bekannt, gibt die value-Methode nur den String-Typ zurück, daher speichern wir diesen in einer String-Variablen.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Jetzt haben wir den Wert des Vornamens in der Variablen gespeichert. Daher verwenden wir das Mitarbeiterobjekt, das wir in unserer Methode definiert haben, um den Wert zuzuweisen.
Bitte entfernen Sie alle Werte, die Sie in der Employee-Klasse zugewiesen / fest codiert haben, da wir die Werte mit unserer Methode zurückgeben.
Aber es gibt ein Problem damit, das '.Text' Funktion gibt immer einen String-Wert zurück. Wenn wir also den Wert einer Mitarbeiter-ID extrahieren möchten, die eine Ganzzahl ist, wird sie auch als Zeichenfolge extrahiert. Wir müssen diese Zeichenfolge also in eine Ganzzahl konvertieren, bevor wir sie dem JSON-Objekt zuweisen können. Dazu analysieren wir den Wert direkt in eine Ganzzahl.
Der Code für employeeID sieht also wie folgt aus:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
Am Ende analysieren wir den Zeichenfolgenwert in eine Ganzzahl, da unser JSON employeeID als Ganzzahlwert erkennt.
Der Gesamtcode zum Abrufen von Daten für alle 4 Spalten sieht also wie folgt aus:
Jetzt müssen wir nur noch die Variablen, die wir mit den Daten aus der Excel-Tabelle erstellt haben, den Mitarbeiterobjekten zuweisen.
Alles ist festgelegt, wir werden jetzt das Projekt bauen. Sobald der Build abgeschlossen ist, führen wir das Programm zum Generieren des JSON aus.
Folgendes JSON wird generiert:
Vergleichen wir nun die Daten aus dem JSON mit denen in der Excel-Tabelle.
Wie oben gezeigt, stimmen die JSON-Daten mit den Daten in allen 4 Spalten der Excel-Tabelle überein. Überprüfen wir den JSON, den unser Programm generiert hat. Dazu werden wir wieder besuchen Hier . Kopieren Sie einfach den gesamten JSON-Inhalt in den Textbereich und klicken Sie auf 'JSON validieren' Taste.
Hurra! Wir haben einen gültigen JSON mit den Daten aus dem Excel erstellt.
Übung für Sie:
Erstellen Sie einen dreistufigen verschachtelten JSON. Erstellen Sie eine übergeordnete JSON-Firma und verschachteln Sie den zuvor erstellten Mitarbeiter-JSON zusammen mit dem Auto-JSON.
Fazit
Wir haben jetzt das Ende unseres Tutorials erreicht. Es war ein langes Tutorial, aber wir haben einige Dinge gelernt. Wir haben gelernt, wie Sie mit c # -Programmierung einen einfachen JSON erstellen und welche Vorteile es hat, verschiedene JSON-Datensätze in eine andere Klasse zu kategorisieren. Wir haben unsere Programmierkenntnisse auch genutzt, um Arrays und sogar eine weitere JSON-Struktur in einem übergeordneten JSON hinzuzufügen.
Zuletzt haben wir daran gearbeitet, Daten aus einer anderen Datenquelle abzurufen, um die Werte den JSON-Schlüsseln zuzuführen.
Ich hoffe, euch hat die ganze Reihe von JSON-Tutorials bisher gefallen.
Tutorial # 4: Verwenden von JSON zum Testen von Schnittstellen
Literatur-Empfehlungen
- So erstellen Sie JSON-Objekte mit C # -Code (JSON-Erstellung Teil 1)
- Top Fragen und Antworten zum JSON-Interview
- Verwenden von JSON zum Testen von Schnittstellen
- JSON Tutorial: Einführung und ein vollständiger Leitfaden für Anfänger
- Warteschlangendatenstruktur in C ++ mit Illustration
- MongoDB Datenbanksicherung erstellen
- Stapeldatenstruktur in C ++ mit Illustration
- Datenstruktur für zirkuläre verknüpfte Listen in C ++ mit Abbildung