C++

So analysieren Sie JSON in C++

So analysieren Sie JSON in C++
Die Absicht dieses Tutorials besteht darin, die JSON-Daten zu verstehen und JSON-Daten in C zu analysieren++. Wir werden JSON-Daten, Object, Array, JSON-Syntax diskutieren und dann mehrere Arbeitsbeispiele durchgehen, um den Parsing-Mechanismus von JSON-Daten in C . zu verstehen++.

Was ist JSON?

JSON ist eine leichtgewichtige textbasierte Darstellung zum organisierten Speichern und Übertragen strukturierter Daten. Die JSON-Daten werden in Form von geordneten Listen und Schlüssel-Wert-Paaren dargestellt. JSON steht für JavaSkrippe ÖObjekt NeinAnmerkung. Wie der vollständige Name schon sagt, ist es von JavaScript abgeleitet derived. JSON-Daten werden jedoch in den meisten gängigen Programmiersprachen unterstützt.

Es wird oft verwendet, um die Daten vom Server auf eine Webseite zu übertragen. Es ist viel einfacher und sauberer, die strukturierten Daten in JSON darzustellen als in XML.

JSON-Syntaxregel

Hier sind die JSON-Syntaxregeln:

  1. JSON-Daten sollten immer in Form von Schlüssel-Wert-Paaren vorliegen.
  2. JSON-Daten werden durch Kommas getrennt.
  3. Eine geschweifte Klammer wird verwendet, um das JSON-Objekt darzustellen.
  4. Eine eckige Klammer wird verwendet, um ein JSON-Array darzustellen.

Was sind JSON-Daten??

Die JSON-Daten werden in Form von Schlüssel-Wert-Paaren dargestellt. Dies ist vergleichbar mit einem Wörterbuch oder Hash in anderen Programmiersprachen.

„Name“: „Drache“

Dies ist ein Beispiel für einfache JSON-Daten. Der Schlüssel hier ist „Name“ und „Drake“ ist der entsprechende Wert. Der Schlüssel, ich.e., „Name“ und der Wert, i.e., „Drake“ werden durch einen Doppelpunkt getrennt.

JSON-Dateierweiterung

Die JSON-Daten werden normalerweise in der Datei mit der Erweiterung „.json“. Um beispielsweise die Daten des Mitarbeiters zu speichern, können Sie die Datei einfach als "Mitarbeiter" benennen.json'. Dies wäre eine einfache Textdatei. Sie können diese JSON-Datei dann in jedem Ihrer bevorzugten Texteditoren öffnen.

JSON-Objekt

Das JSON-Objekt ist nichts anderes als die JSON-Daten, die in die geschweiften Klammern eingeschlossen sind. Hier ist ein Beispiel für ein JSON-Objekt:


„Name“: „Drache“,
„Mitarbeiter-ID“: „23547a“,
„Telefon“: „23547“,
„Abteilung“: „Finanzen“

Ein JSON-Objekt kann mehrere JSON-Daten enthalten. Alle JSON-Daten werden durch ein Komma getrennt. JSON-Daten werden als Schlüssel-Wert-Paare dargestellt. Der Schlüssel, ich.e., „Name“ und der Wert, i.e., „Drake“ werden durch einen Doppelpunkt getrennt. Im obigen Beispiel gibt es vier Schlüssel-Wert-Paare. Der erste Schlüssel ist „Name“; „Drake“ ist der entsprechende Wert dafür. Ebenso sind „EmployeeID“, „Phone“ und „Department“ die anderen drei Tasten.

JSON-Array

Ein JSON-Array kann mehrere durch Kommas getrennte JSON-Objekte enthalten. Das JSON-Array wird in eine eckige Klammer eingeschlossen. Sehen wir uns ein Beispiel für ein JSON-Array an:

"Studenten":[
"firstName":"Sean", "lastName":"Braun",
"firstName":"Drake", "lastName":"Williams",
"firstName":"Tom", "lastName":"Miller",
"Vorname":"Peter", "Nachname": "Johnson"
]

Dies ist ein Beispiel für ein JSON-Array. Hier wird „Students“ in eckige Klammern eingeschlossen, d.h.e., Array und enthält vier JSON-Objekte. Jedes dieser Objekte wird in Form von Schlüssel-Wert-Paaren dargestellt und durch ein Komma getrennt.

Eine JSON-Beispieldatei

Da wir nun JSON-Daten, JSON-Objekte und JSON-Arrays verstanden haben, sehen wir uns ein Beispiel für eine JSON-Datei an:


„Vorname“: „Sean“,
„Nachname“: „Braun“,
„Studenten-ID“: 21453,
„Abteilung“: „Computer Sc.”,
"Fächer":["Mathe", "Phy", "Chem"]

Parsen von Bibliotheken in C++:

Es gibt keine native Lösung zum Parsen von JSON-Daten in C++. Es gibt jedoch mehrere Bibliotheken zum Parsen von JSON-Daten in C++. In diesem Artikel werden wir uns die beiden beliebtesten Bibliotheken zum Analysieren von JSON-Daten in C ansehen++. Hier sind die GitHub-Links zum Parsen von JSON-Daten:

  1. https://github.com/nlohmann/json
  2. https://github.com/Tencent/rapidjson/

Sie können diese Bibliotheken herunterladen, um die unten gezeigten Beispiele ausführen zu können.

Beispiele

Jetzt haben wir ein grundlegendes Verständnis von JSON-Daten, Objekten, Arrays und verfügbaren Parsing-Bibliotheken. Sehen wir uns nun einige Beispiele zum Analysieren von JSON-Daten in C++ an:

Für Beispiel-1 und Beispiel-2 verwenden wir die „nlohmann“-Bibliothek. Im Fall von Beispiel-3 verwenden wir die Bibliothek „RapidJSON“.

Beispiel-1: Parsen von JSON in C++

In diesem Beispielprogramm zeigen wir, wie man auf Werte von JSON-Daten in C . zugreift++.

#einschließen
#include "json.hpp"
mit json = nlohmann::json;
int main()

// jdMitarbeiter
json jdMitarbeiter =

"firstName","Sean",
"lastName","Braun",
"Studenten-ID",21453,
"Abteilung","Computer-Sc."
;
// Auf die Werte zugreifen
std::string fName = jdEmployees.value("vorname", "oops");
std::string lName = jdEmployees.value("nachname", "oops");
int sID = jdMitarbeiter.value("StudentID", 0);
std::string dept = jdEmployees.value("Abteilung", "oops");
// Werte ausgeben
std::cout << "First Name: " << fName << std::endl;
std::cout << "Last Name: " << lName << std::endl;
std::cout << "Student ID: " << sID << std::endl;
std::cout << "Department: " << dept << std::endl;
0 zurückgeben;

Beispiel-2: Parsen und Serialisieren von JSON in C++

In diesem Beispielprogramm werden wir sehen, wie man JSON in C analysiert und serialisiert++. Wir verwenden „json::parse()“, um die JSON-Daten zu analysieren.

#einschließen
#include "json.hpp"
#einschließen
mit json = nlohmann::json;
int main()

// Hier ist ein JSON-Text
Zeichentext[] = R"(

"Buch":
"Breite": 450,
"Höhe": 30,
"Titel": "Hallo Welt",
"isBiography": falsch,
"AnzahlKopien": 4,
"Bibliotheks-IDs": [2319, 1406, 3854, 987]


)";
// Lass uns JSON analysieren und serialisieren
json j_complete = json::parse(text);
std::cout << std::setw(4) << j_complete << std::endl;

Beispiel-3: Parsen von JSON in C++

Jetzt zeigen wir, wie man JSON-Strings mit der RapidJSON-Bibliothek analysiert par. RapidJSON wurde ursprünglich von RapidXML inspiriert. In diesem Beispielprogramm parsen wir einen JSON-String in DOM. Wir haben „mydoc“ vom Typ „Document“ deklariert und verwenden dann das „mydoc“.parse()“-Methode zum Parsen des JSON-Strings.

#einschließen
#include "rapidjson/writer.h"
#include "rapidjson/document.h"
#include "rapidjson/stringbuffer.h"
Verwenden des Namensraums rapidjson;
int main()

const char* json = ""firstName":"Sean","lastName":"Braun","empId":21453,
"department":"Computer-Sc."";
// Analysiere den JSON-String in DOM
Dokument mydoc;
mydoc.Parse(json);
// DOM zu String
StringBuffer-Puffer;
Schriftsteller Schreiber (Puffer);
mydoc.Akzeptieren (Autor);
// Ausgabe ausgeben
std::cout << buffer.GetString() << std::endl;
0 zurückgeben;

Fazit

In diesem Artikel haben wir kurz JSON-Daten, -Objekte, -Arrays und -Syntax diskutiert. Wie wir wissen, gibt es keine native Lösung für das Parsen von JSON-Daten in C++; Wir haben zwei verschiedene Bibliotheken verwendet, um JSON-Daten in C zu analysieren++. Wir haben uns drei verschiedene Beispiele angesehen, um den JSON-Datenparsing-Mechanismus in C . zu demonstrieren++. Im Vergleich zur Bibliothek „nlohmann“ ist RapidJSON klein, schnell und speicherfreundlich.

So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...