JSON और PHP का परिचय
\n\nJSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो वेब सर्वर और क्लाइंट के बीच इंटरैक्शन के लिए डी-फैक्टो मानक बन गया है। आधुनिक PHP वेब डेवलपमेंट में, आप API अनुरोधों से लेकर कॉन्फ़िगरेशन फ़ाइलों और संरचित डेटा भंडारण तक, हर जगह JSON का सामना करेंगे।
\n\nइस लेख में, हम PHP में JSON के साथ काम करने की दो मूलभूत प्रक्रियाओं पर चर्चा करेंगे:
\n\n- \n
- सीरियलाइज़ेशन — PHP ऐरे या ऑब्जेक्ट को JSON स्ट्रिंग में बदलना (फ़ंक्शन
json_encode())। \n - पार्सिंग (डीसीरियलाइज़ेशन) — JSON स्ट्रिंग को वापस PHP वेरिएबल में बदलना (फ़ंक्शन
json_decode())। \n
यह सामग्री शुरुआती PHP डेवलपर्स के लिए है, इसलिए हम सरल से जटिल की ओर बढ़ेंगे, विस्तृत कोड उदाहरणों के साथ।
\n\nडेटा सीरियलाइज़ेशन: फ़ंक्शन json_encode()
\n\nसीरियलाइज़ेशन PHP के आंतरिक प्रतिनिधित्व (ऐरे, ऑब्जेक्ट) से डेटा को JSON प्रारूप की स्ट्रिंग में बदलने की प्रक्रिया है। यह तब आवश्यक है जब आप क्लाइंट (ब्राउज़र, मोबाइल ऐप) को डेटा भेजना चाहते हैं या इसे सार्वभौमिक प्रारूप में फ़ाइल/डेटाबेस में सहेजना चाहते हैं।
\n\nऐरे को JSON में बदलना
\n\nसबसे सरल मामला — एक एसोसिएटिव ऐरे का सीरियलाइज़ेशन:
\n\n<?php\n$user = [\n "name" => "इवान पेत्रोव",\n "age" => 28,\n "email" => "ivan@example.com",\n "is_active" => true\n];\n\n$jsonString = json_encode($user, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\necho $jsonString;\n?>\n\nनिष्पादन का परिणाम:
\n\n{\n "name": "इवान पेत्रोव",\n "age": 28,\n "email": "ivan@example.com",\n "is_active": true\n}\n\nफ़्लैग पर ध्यान दें:
\n- \n
JSON_UNESCAPED_UNICODE— सिरिलिक वर्णों को संरक्षित करने की अनुमति देता है (इस फ़्लैग के बिना, रूसी वर्ण \\uXXXX में बदल जाएंगे)। \n JSON_PRETTY_PRINT— पठनीयता के लिए इंडेंटेशन के साथ आउटपुट को फ़ॉर्मेट करता है (डिबगिंग के लिए उपयोगी, लेकिन स्ट्रिंग का आकार बढ़ाता है)। \n
ऑब्जेक्ट को JSON में बदलना
\n\nPHP ऑब्जेक्ट को भी सीरियलाइज़ किया जा सकता है। इसमें केवल public-प्रॉपर्टी शामिल होंगी:
\n\n<?php\nclass Product {\n public $id;\n public $title;\n private $secretPrice; // JSON में शामिल नहीं होगा\n\n public function __construct($id, $title, $price) {\n $this->id = $id;\n $this->title = $title;\n $this->secretPrice = $price;\n }\n}\n\n$product = new Product(1, "लैपटॉप", 75000);\necho json_encode($product, JSON_UNESCAPED_UNICODE);\n// आउटपुट: {"id":1,"title":"लैपटॉप"}\n?>\n\nनेस्टेड संरचनाओं के साथ काम करना
\n\nJSON नेस्टिंग का समर्थन करता है। किसी भी गहराई के PHP ऐरे सही ढंग से बदल जाते हैं:
\n\n<?php\n$data = [\n "company" => "TechCorp",\n "employees" => [\n ["name" => "अन्ना", "position" => "डेवलपर"],\n ["name" => "बोरिस", "position" => "डिज़ाइनर"]\n ],\n "address" => [\n "city" => "मॉस्को",\n "street" => "टावर्सकाया"\n ]\n];\n\necho json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\n?>\n\nJSON पार्सिंग: फ़ंक्शन json_decode()
\n\nपार्सिंग (डीसीरियलाइज़ेशन) — यह उल्टी प्रक्रिया है: JSON स्ट्रिंग से हम वह डेटा प्राप्त करते हैं जिसके साथ PHP काम कर सकता है।
\n\nऑब्जेक्ट प्राप्त करना
\n\nडिफ़ॉल्ट रूप से, json_decode() stdClass क्लास का ऑब्जेक्ट लौटाता है:
<?php\n$jsonString = '{"name":"इवान पेत्रोव","age":28,"email":"ivan@example.com"}';\n$user = json_decode($jsonString);\n\necho $user->name; // इवान पेत्रोव\necho $user->age; // 28\necho $user->email; // ivan@example.com\n?>\n\nऐरे प्राप्त करना
\n\nयदि दूसरा आर्गुमेंट true पास किया जाए, तो फ़ंक्शन एक एसोसिएटिव ऐरे लौटाता है:
&l