C++ में JSON प्रसंस्करण: लाइब्रेरीज़, पार्सिंग और डेटा सीरियलाइज़ेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ में JSON प्रसंस्करण: लाइब्रेरीज़, पार्सिंग और उदाहरण



JSON (JavaScript Object Notation) डेटा आदान-प्रदान के सबसे लोकप्रिय प्रारूपों में से एक है। हालाँकि C++ में JSON के लिए अंतर्निहित समर्थन नहीं है, फिर भी कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं जो JSON डेटा को आसानी से पार्स करने, जनरेट करने और संशोधित करने की अनुमति देती हैं। इस लेख में, हम तीन मुख्य लाइब्रेरीज़ पर विचार करेंगे: nlohmann/json, RapidJSON और Boost.PropertyTree, साथ ही उनके उपयोग के व्यावहारिक उदाहरण भी देंगे।



C++ में JSON के लिए लाइब्रेरी की आवश्यकता क्यों है?

C++ एक कंपाइल की जाने वाली भाषा है, जो प्रदर्शन पर केंद्रित है। रेगुलर एक्सप्रेशन या स्ट्रिंग ऑपरेशन का उपयोग करके मैन्युअल रूप से JSON को पार्स करना एक समय लेने वाला और त्रुटि-प्रवण कार्य है। विशेष लाइब्रेरीज़ प्रदान करती हैं:

  • पार्सिंग और सीरियलाइज़ेशन की उच्च गति।
  • सहज ज्ञान युक्त API (अक्सर STL शैली में)।
  • JSON मानकों के लिए समर्थन (नेस्टेड ऑब्जेक्ट, ऐरे, null, यूनिकोड सहित)।
  • न्यूनतम निर्भरताएँ (अक्सर header-only)।


1. nlohmann/json लाइब्रेरी (JSON for Modern C++)

सबसे लोकप्रिय और उपयोग में आसान लाइब्रेरी। इसे header-only (एक हेडर फ़ाइल) के रूप में वितरित किया जाता है। यह शैक्षिक परियोजनाओं और छोटे अनुप्रयोगों के लिए आदर्श है।



स्थापना

रिपॉजिटरी nlohmann/json से फ़ाइल json.hpp डाउनलोड करें और इसे शामिल करें:

#include "json.hpp"using json = nlohmann::json;


उदाहरण: स्ट्रिंग से JSON पार्स करना

#include <iostream>#include "json.hpp"

int main() { std::string json_str = R"({ "name": "PythonLib", "year": 2025, "tags": ["C++", "JSON", "education"], "active": true })";

json data = json::parse(json_str);

std::cout << "Name: " << data["name"] << ""; std::cout << "Year: " << data["year"] << ""; std::cout << "First tag: " << data["tags"][0] << ""; std::cout << "Active: " << data["active"] << "";

return 0;}


उदाहरण: JSON बनाना और सीरियलाइज़ करना

#include <iostream>#include "json.hpp"

int main() { json obj; obj["title"] = "JSON in C++"; obj["pages"] = 42; obj["chapters"] = {"intro", "basics", "advanced"}; obj["metadata"]["author"] = "PythonLib Team";

std::string serialized = obj.dump(4); // 4 — सुंदर आउटपुट के लिए इंडेंटेशन std::cout << serialized << "";

return 0;}


2. RapidJSON लाइब्रेरी

RapidJSON एक उच्च-प्रदर्शन वाली लाइब्रेरी है, जो गति और न्यूनतम मेमोरी खपत पर केंद्रित है। इसका उपयोग अक्सर गेम, सर्वर एप्लिकेशन और एम्बेडेड सिस्टम में किया जाता है। यह SAX-शैली (स्ट्रीमिंग पार्सिंग) और DOM-शैली का समर्थन करती है।



स्थापना

GitHub से आर्काइव डाउनलोड करें और हेडर फ़ाइलों को शामिल करें:

#include "rapidjson/document.h"#include "rapidjson/writer.h"#include "rapidjson/stringbuffer.h"


उदाहरण: पार्सिंग और पढ़ना

#include <iostream>#include "rapidjson/document.h"

int main() { const char* json = "{\\"project\\":\\"PythonLib\\",\\"version\\":2.0}"; rapidjson::Document doc; doc.Parse(json);

if (doc.HasParseError()) { std::cerr << "Parse error!"; return 1; }

std::cout << "Project: " << doc["project"].GetString() << ""; std::cout << "Version: " << doc["version"].GetDouble() << "";

return 0;}


उदाहरण: JSON जनरेशन

#include <iostream>#include "rapidjson/docume                    

अनुशंसाएँ