RapidJSON C++: पूरी गाइड उदाहरणों के साथ

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

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

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

RapidJSON C++: पूरी गाइड उदाहरणों के साथ

RapidJSON एक हाई-परफॉर्मेंस C++ लाइब्रेरी है जो JSON को पार्स और जनरेट करने के लिए उपयोग की जाती है। इसे Milo Yip ने डेवलप किया है और यह MIT लाइसेंस के तहत उपलब्ध है। यह अपनी स्पीड, कम मेमोरी खपत और ECMA-404 (RFC 7159) स्टैंडर्ड के पूर्ण अनुपालन के कारण लोकप्रिय है। कई अन्य लाइब्रेरीज़ के विपरीत, RapidJSON को किसी बाहरी डिपेंडेंसी की ज़रूरत नहीं होती और यह एम्बेडेड सिस्टम जैसे सीमित संसाधनों वाले वातावरण में भी काम कर सकता है।

इस लाइब्रेरी की ज़रूरत क्यों है? JSON (JavaScript Object Notation) वेब सर्विसेज, कॉन्फ़िगरेशन फ़ाइलों और स्ट्रक्चर्ड डेटा स्टोरेज के बीच डेटा एक्सचेंज के लिए एक डी-फैक्टो स्टैंडर्ड बन गया है। C++ में, जहाँ परफॉर्मेंस महत्वपूर्ण है, धीमे पार्सर का उपयोग एक बाधा बन सकता है। RapidJSON इस समस्या को हल करता है: यह SAX-जैसे (स्ट्रीमिंग) API का उपयोग करके मेमोरी एलोकेशन को कम करता है और DOM-API के माध्यम से ऑब्जेक्ट ट्री के साथ आसानी से काम करता है। यह इसे हाई-लोड सर्वर, गेम इंजन और रियल-टाइम एप्लिकेशन के लिए आदर्श बनाता है।

यह लाइब्रेरी JSON के पूर्ण पार्सिंग (वैधता जांच के साथ) और स्पीड बढ़ाने के लिए "इन्सेंसिटिव" मोड दोनों को सपोर्ट करती है। यह UTF-8, UTF-16 और UTF-32 के साथ काम कर सकती है, और इसमें सुविधाजनक इटरेटर और सर्च फंक्शन शामिल हैं। RapidJSON का उपयोग MongoDB, Tencent और कई ओपन-सोर्स प्रोजेक्ट्स में सक्रिय रूप से किया जाता है।

इंस्टॉलेशन

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

तरीका 1: रिपॉजिटरी क्लोन करना (अनुशंसित)

GitHub से रिपॉजिटरी क्लोन करें और include/rapidjson फ़ोल्डर को अपने प्रोजेक्ट में कॉपी करें।

git clone https://github.com/Tencent/rapidjson.git
# फिर include/rapidjson फ़ोल्डर को अपने प्रोजेक्ट में कॉपी करें

तरीका 2: vcpkg पैकेज मैनेजर के माध्यम से

अगर आप vcpkg का उपयोग करते हैं, तो एक कमांड से इंस्टॉलेशन हो जाता है:

vcpkg install rapidjson

तरीका 3: Conan के माध्यम से

Conan (C/C++ पैकेज मैनेजर) उपयोगकर्ताओं के लिए:

conan install rapidjson/1.1.0@

कोड में इन्क्लूड करना

इंस्टॉलेशन के बाद, अपने सोर्स फ़ाइल में निम्नलिखित जोड़ें:

#include "rapidjson/document.h"     // DOM API के लिए
#include "rapidjson/writer.h"       // JSON लिखने के लिए
#include "rapidjson/stringbuffer.h" // आउटपुट बफरिंग के लिए
#include "rapidjson/prettywriter.h" // फ़ॉर्मेटेड आउटपुट के लिए
#include "rapidjson/reader.h"       // SAX API के लिए
#include "rapidjson/error/en.h"     // एरर हैंडलिंग के लिए

त्वरित शुरुआत: न्यूनतम कार्यशील उदाहरण

चलिए एक सरल प्रोग्राम लिखते हैं जो JSON स्ट्रिंग को पार्स करता है, वैल्यू निकालता है और उसे स्क्रीन पर प्रिंट करता है।

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

int main() {
    // 1. पार्स करने के लिए JSON स्ट्रिंग
    const char* json = "{\"project\":\"RapidJSON\",\"version\":1.0}";

    // 2. DOM डॉक्यूमेंट बनाएँ
    rapidjson::Document doc;
    doc.Parse(json);

    // 3. जाँचें कि पार्सिंग सफल हुई या नहीं
    if (doc.HasParseError()) {
        std::cerr << "पार्सिंग में त्रुटि: " 
                  << rapidjson::GetParseError_En(doc.GetParseError()) 
                  << std::endl;
        return 1;
    }

    // 4. कीज़ के अनुसार वैल्यू निकालें
    const std::string& project = doc["project"].GetString();
    double version = doc["version"].GetDouble();

    // 5. परिणाम प्रिंट करें
    std::cout << "प्रोजेक्ट: " << project << std::endl;
    std::cout << "वर्जन: " << version << std::endl;

    return 0;
}

अनुशंसाएँ