Arbeiten mit JSON in C++: Parsing und Serialisierung für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die Arbeit mit JSON in C++

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das häufig in der Webentwicklung, Konfigurationsdateien und APIs verwendet wird. Obwohl C++ keine integrierte Unterstützung für JSON bietet, gibt es viele Bibliotheken, die die Arbeit mit diesem Format einfach und bequem machen. In diesem Artikel werden wir uns ansehen, wie man JSON-Daten in C++ mit der beliebten Bibliothek nlohmann/json parst und serialisiert. Das Material richtet sich an Anfänger, die bereits mit den Grundlagen von C++ vertraut sind.



1. Installation und Einbindung der Bibliothek nlohmann/json

Die Bibliothek nlohmann/json ist eine der beliebtesten und am einfachsten zu verwendenden Bibliotheken für die Arbeit mit JSON in C++. Sie unterstützt C++11 und höher und funktioniert auf allen gängigen Plattformen.

Installationsmethoden

  • Header-Datei herunterladen: Gehen Sie zum GitHub-Repository und laden Sie die Datei json.hpp herunter.
  • Installation über vcpkg: vcpkg install nlohmann-json
  • Installation über Conan: conan install nlohmann_json/3.11.2@

Nach der Installation binden Sie die Datei einfach in Ihr Projekt ein:

#include <iostream>#include "json.hpp"using json = nlohmann::json;

int main() { std::cout << "Bibliothek eingebunden!" << std::endl; return 0;}


2. JSON-Parsing: Daten aus einem String und einer Datei lesen

Parsing (Analysieren) von JSON ist der Prozess der Umwandlung eines JSON-Strings in C++-Datenstrukturen. Die Bibliothek nlohmann/json macht dies sehr einfach.



Parsing aus einem String

Betrachten wir ein Beispiel für das Parsen eines einfachen JSON-Objekts:

#include <iostream>#include "json.hpp"using json = nlohmann::json;

int main() { std::string json_str = R"({ "name": "Anna", "age": 25, "is_student": false, "hobbies": ["Lesen", "Schwimmen", "Programmieren"] })";

// Parsen des Strings json data = json::parse(json_str);

// Zugriff auf die Daten std::string name = data["name"]; int age = data["age"]; bool is_student = data["is_student"]; std::vector<std::string> hobbies = data["hobbies"];

std::cout << "Name: " << name << std::endl; std::cout << "Alter: " << age << std::endl; std::cout << "Student: " << (is_student ? "ja" : "nein") << std::endl; std::cout << "Hobbys: "; for (const auto& hobby : hobbies) { std::cout << hobby << " "; } std::cout << std::endl;

return 0;}


Parsing aus einer Datei

Oft werden JSON-Daten in Dateien gespeichert. So lesen Sie sie aus:

#include <iostream>#include <fstream>#include "json.hpp"using json = nlohmann::json;

int main() { std::ifstream file("data.json"); if (!file.is_open()) { std::cerr << "Fehler beim Öffnen der Datei!" << std::endl; return 1; }

json data = json::parse(file); file.close();

// Ausgabe der Daten std::cout << "Daten aus der Datei: " << data.dump(4) << std::endl; return 0;}

Die Methode dump(4) wandelt das JSON zurück in einen String mit einem Einzug von 4 Leerzeichen zur besseren Lesbarkeit.



3. Serialisierung: Erstellen von JSON aus C++-Daten

Serialisierung ist der umgekehrte Prozess: die Umwandlung von C++-Daten in einen JSON-String. Die Bibliothek ermöglicht die intuitive Erstellung von JSON-Objekten.



Erstellen eines einfachen JSON-Objekts

#include <iostream>#include "json.hpp"using json = nlohmann::json;

int main() { json person;

person["name"] = "Ivan";

Blogs

Buchempfehlungen