PHP में JSON प्रोसेसिंग: पूर्ण गाइड
\n\nJSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो क्लाइंट और सर्वर के बीच इंटरैक्शन के लिए मानक बन गया है। PHP में JSON के साथ काम करना अंतर्निहित फंक्शन json_encode() और json_decode() के माध्यम से मूल रूप से लागू किया गया है। इस लेख में, हम PHP में JSON प्रोसेसिंग के सभी पहलुओं पर विस्तार से चर्चा करेंगे: बुनियादी संचालन से लेकर उन्नत तकनीकों और त्रुटि प्रबंधन तक।
PHP में JSON के साथ काम करने के लिए मुख्य फंक्शन
\n\nPHP JSON प्रोसेसिंग के लिए दो प्रमुख उपकरण प्रदान करता है:
\n\n- \n
- json_encode() — PHP मान (एरे, ऑब्जेक्ट, स्ट्रिंग) को JSON स्ट्रिंग में बदलता है। \n
- json_decode() — JSON स्ट्रिंग को वापस PHP मान में डिकोड करता है। \n
json_encode() के बुनियादी उपयोग का उदाहरण
\n\n<?php\n// मूल डेटा: एसोसिएटिव एरे\n$data = [\n 'name' => 'इवान',\n 'age' => 30,\n 'skills' => ['PHP', 'JavaScript', 'Python']\n];\n\n// JSON में एनकोड करें\n$jsonString = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\necho $jsonString;\n?>\n\n\nनिष्पादन का परिणाम:
\n\n{\n "name": "इवान",\n "age": 30,\n "skills": [\n "PHP",\n "JavaScript",\n "Python"\n ]\n}\n\n\nफ्लैग JSON_UNESCAPED_UNICODE सिरिलिक वर्णों को बिना एस्केपिंग के संरक्षित करता है, और JSON_PRETTY_PRINT पठनीयता के लिए इंडेंटेशन के साथ आउटपुट को फॉर्मेट करता है।
PHP में JSON डिकोड करने का उदाहरण
\n\n<?php\n$jsonString = '{"name":"अन्ना","age":25,"city":"मॉस्को"}';\n\n// एसोसिएटिव एरे में डिकोड करें (दूसरा आर्गुमेंट true)\n$array = json_decode($jsonString, true);\necho $array['name']; // अन्ना\necho $array['city']; // मॉस्को\n\n// ऑब्जेक्ट में डिकोड करें (डिफ़ॉल्ट)\n$object = json_decode($jsonString);\necho $object->name; // अन्ना\n?>\n\n\nJSON के साथ काम करते समय त्रुटि प्रबंधन
\n\nबाहरी डेटा के साथ काम करते समय JSON की वैधता की जांच करना महत्वपूर्ण है। इसके लिए json_last_error() और json_last_error_msg() का उपयोग करें:
<?php\n$invalidJson = '{name: "त्रुटि"}'; // अमान्य JSON (कुंजी के लिए कोट्स नहीं)\n\n$decoded = json_decode($invalidJson);\n\nif (json_last_error() !== JSON_ERROR_NONE) {\n $errorMsg = json_last_error_msg();\n echo "JSON डिकोडिंग त्रुटि: $errorMsg";\n // आउटपुट: JSON डिकोडिंग त्रुटि: Syntax error\n}\n?>\n\n\nनेस्टेड संरचनाओं के साथ काम करना
\n\nJSON जटिल पदानुक्रमिक डेटा के लिए उपयुक्त है। नेस्टेड एरे और ऑब्जेक्ट के साथ एक उदाहरण देखें:
\n\n<?php\n$complexData = [\n 'users' => [\n [\n 'id' => 1,\n 'name' => 'पीटर',\n 'orders' => [\n ['product' => 'लैपटॉप', 'price' => 75000],\n ['product' => 'माउस', 'price' => 1500]\n ]\n ],\n [\n 'id' => 2,\n 'name' => 'मारिया',\n 'orders' => []\n ]\n ],\n 'total_orders' => 2\n];\n\n$json = json_encode($complexData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\nfile_put_contents('data.json', $json); // फ़ाइल में सेव करें\n\n// वापस पढ़ें\n$jsonFromFile = file_get_contents('data.json');\n$restoredData = json_decode($jsonFromFile, true);\n\n// नेस्टेड डेटा तक पहुंच\necho $restoredData['users'][0]['orders'][0]['product']; // लैपटॉप\n?>\n\n\njson_encode() के उन्नत विकल्प
\n\nPHP एनकोडिंग के बारीक समायोजन के लिए कई फ्लैग का समर्थन करता है:
\n\n- \n
JSON_FORCE_OBJECT— एरे को जबरन ऑब्जेक्ट के रूप में एनकोड करता है। \n JSON_NUMERIC_CHECK— संख्यात्मक स्ट्रिंग को संख्याओं में बदलता है। \n JSON_UNESCAPED_SLASHES— स्लैश को एस्केप नहीं करता। \n JSON_THROW_ON_ERROR— त्रुटि पर अपवाद फेंकता है (