परिचय: C++ में JSON की आवश्यकता क्यों है?
\nJSON (JavaScript Object Notation) एक हल्का डेटा एक्सचेंज फॉर्मेट है, जो वेब एप्लिकेशन, कॉन्फ़िगरेशन फ़ाइलों और API में व्यापक रूप से उपयोग किया जाता है। हालाँकि JSON मूल रूप से JavaScript में आया था, आज यह C++ सहित किसी भी प्रोग्रामिंग भाषा में सर्वर और क्लाइंट के बीच संरचित डेटा स्थानांतरित करने का डी-फैक्टो मानक बन गया है।
\nइस लेख में, हम C++ में JSON के साथ काम करना सीखेंगे: पार्सिंग (पढ़ना) और सीरियलाइज़ेशन (बनाना)। यह सामग्री शुरुआती डेवलपर्स के लिए है जो C++ की मूल बातें (वेरिएबल, फंक्शन, क्लास) जानते हैं, लेकिन अभी तक JSON के साथ काम नहीं किया है।
\nC++ में JSON के साथ काम करने के लिए, हम लोकप्रिय लाइब्रेरी nlohmann/json (जिसे JSON for Modern C++ भी कहा जाता है) का उपयोग करेंगे। यह इंस्टॉल करने में आसान, सहज और सीखने के लिए बहुत अच्छी है।
\n\nnlohmann/json लाइब्रेरी इंस्टॉल करना
\nकोड लिखने से पहले, लाइब्रेरी को कनेक्ट करना आवश्यक है। सबसे आसान तरीका header-only वर्जन (सिर्फ एक हेडर फ़ाइल) का उपयोग करना है।
\n\nतरीका 1: json.hpp फ़ाइल डाउनलोड करें
\n- \n
- nlohmann/json के GitHub रिपॉजिटरी पर जाएं। \n
- नवीनतम रिलीज़ से
json.hppफ़ाइल डाउनलोड करें। \n - इसे अपने प्रोजेक्ट फ़ोल्डर में रखें। \n
- कोड में इसे शामिल करें:
#include "json.hpp"\n
तरीका 2: पैकेज मैनेजर (vcpkg / Conan) का उपयोग करें
\nयदि आप CMake का उपयोग करते हैं, तो vcpkg के माध्यम से लाइब्रेरी इंस्टॉल करना सबसे आसान है:
\nvcpkg install nlohmann-json\nया Conan के माध्यम से:
\nconan install nlohmann_json/3.11.2@\n\nइंस्टॉल करने के बाद, कोड में लाइब्रेरी को शामिल करें:
\n#include <nlohmann/json.hpp>\nusing json = nlohmann::json;\n\nअब आप काम करने के लिए तैयार हैं!
\n\nC++ में JSON पार्सिंग: डेटा पढ़ना
\nपार्सिंग एक JSON स्ट्रिंग को एक ऑब्जेक्ट में बदलने की प्रक्रिया है, जिसके साथ कोड में काम किया जा सकता है। nlohmann/json लाइब्रेरी इसे बहुत आसान बनाती है।
\n\nउदाहरण 1: JSON स्ट्रिंग पार्स करना
\nमान लीजिए, हमारे पास एक JSON स्ट्रिंग है जिसमें उपयोगकर्ता की जानकारी है:
\n{\n "name": "राहुल",\n "age": 25,\n "is_student": true,\n "hobbies": ["पढ़ना", "कोडिंग", "क्रिकेट"]\n}\n\nपार्सिंग एक लाइन में होती है:
\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main() {\n // मूल JSON स्ट्रिंग\n std::string json_str = R"(\n {\n "name": "राहुल",\n "age": 25,\n "is_student": true,\n "hobbies": ["पढ़ना", "कोडिंग", "क्रिकेट"]\n }\n )";\n\n // पार्सिंग\n json data = json::parse(json_str);\n\n // डेटा तक पहुंच\n std::string name = data["name"];\n int age = data["age"];\n bool is_student = data["is_student"];\n std::vector<std::string> hobbies = data["hobbies"];\n\n // आउटपुट\n std::cout << "नाम: " << name << std::endl;\n std::cout << "उम्र: " << age << std::endl;\n std::cout << "छात्र? " << (is_student ? "हाँ" : "नहीं") << std::endl;\n std::cout << "शौक: ";\n for (const auto& hobby : hobbies) {\n std::cout << hobby << " ";\n }\n std::cout << std::endl;\n\n return 0;\n}\n\nआउटपुट:
\nनाम: राहुल\nउम्र: 25\nछात्र? हाँ\nशौक: पढ़ना कोडिंग क्रिकेट\n\nउदाहरण 2: नेस्टेड ऑब्जेक्ट को हैंडल करना
\nJSON में अक्सर नेस्टेड स्ट्रक्चर होते हैं। आइए पते वाला एक उदाहरण देखें:
\n{\n "user": {\n "name": "प्रिया",\n "address": {\n "city": "दिल्ली",\n "street": "चांदनी चौक"\n }\n }\n}\n\nनेस्टेड डेटा तक पहुंच:
\n