PHP में JSON प्रोसेसिंग: पूरी गाइड
JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो सर्वर और क्लाइंट के बीच इंटरैक्शन के लिए डी-फैक्टो मानक बन गया है। PHP में JSON के साथ काम करना मूल रूप से json एक्सटेंशन के माध्यम से किया जाता है, जो PHP 5.2.0 से उपलब्ध है। इस लेख में हम मुख्य फंक्शन, त्रुटि प्रबंधन, नेस्टेड संरचनाओं के साथ काम करना और सर्वोत्तम अभ्यासों पर विस्तार से चर्चा करेंगे।
JSON के साथ काम करने के लिए मुख्य फंक्शन
PHP दो प्रमुख फंक्शन प्रदान करता है:
json_encode()— PHP मान (एरे, ऑब्जेक्ट, स्ट्रिंग आदि) को JSON स्ट्रिंग में बदलता है।json_decode()— JSON स्ट्रिंग को वापस PHP वेरिएबल (एरे या ऑब्जेक्ट) में बदलता है।
उदाहरण: एरे को JSON में एनकोड करना
<?php$data = [ 'name' => 'Alice', 'age' => 30, 'is_student' => false, 'skills' => ['PHP', 'JavaScript', 'Python']];
$json = json_encode($data, JSON_PRETTY_PRINT);echo $json;?>निष्पादन का परिणाम:
{ "name": "Alice", "age": 30, "is_student": false, "skills": [ "PHP", "JavaScript", "Python" ]}उदाहरण: JSON को एरे में डीकोड करना
<?php$jsonString = '{"name":"Bob","age":25,"is_active":true}';
// दूसरा पैरामीटर true — एसोसिएटिव एरे लौटाता है$array = json_decode($jsonString, true);print_r($array);?>परिणाम:
Array( [name] => Bob [age] => 25 [is_active] => 1)बारीक ट्यूनिंग के लिए फ्लैग
json_encode() और json_decode() फंक्शन दूसरे पैरामीटर — फ्लैग की बिट मास्क — का समर्थन करते हैं। आइए सबसे उपयोगी फ्लैग देखें:
- JSON_PRETTY_PRINT — आउटपुट को इंडेंटेशन के साथ फॉर्मेट करता है (पठनीयता के लिए)।
- JSON_UNESCAPED_UNICODE — Unicode वर्णों को एस्केप नहीं करता (सिरिलिक के लिए उपयोगी)।
- JSON_FORCE_OBJECT — एसोसिएटिव एरे को बलपूर्वक ऑब्जेक्ट में बदलता है।
- JSON_NUMERIC_CHECK — संख्याओं वाली स्ट्रिंग को संख्यात्मक प्रकार में बदलता है।
सिरिलिक और फॉर्मेटिंग के साथ उदाहरण
<?php$data = [ 'name' => 'Алексей', 'city' => 'Москва'];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>परिणाम:
{ "name": "Алексей", "city": "Москва"}JSON के साथ काम करते समय त्रुटि प्रबंधन
यदि इनपुट स्ट्रिंग मान्य JSON नहीं है, तो json_decode() null लौटाएगा। त्रुटि का सटीक कारण जानने के लिए, json_last_error() और json_last_error_msg() फंक्शन का उपयोग करें।
<?php$invalidJson = '{name: "Alice"}'; // अमान्य JSON (बिना कोट्स के कुंजियाँ)
$result = json_decode($invalidJson);if (json_last_error() !== JSON_ERROR_NONE) { echo 'त्रुटि: ' . json_last_error_msg();} else { print_r($result);}?>आउटपुट:
त्रुटि: Syntax errorत्रुटि स्थिरांकों की पूरी सूची:
JSON_ERROR_NONE— कोई त्रुटि नहीं।JSON_ERROR_DEPTH— स्टैक की अधिकतम गहराई पार हो गई।JSON_ERROR_STATE_MISMATCH— अमान्य JSON (ब्रैकेट बेमेल)।JSON_ERROR_SYNTAX— सिंटैक्स त्रुटि।JSON_ERROR_UTF8— अमान्य UTF-8 एन्कोडिंग।
नेस्टेड संरचनाओं के साथ काम करना
JSON में अक्सर नेस्टेड ऑब्जेक्ट और एरे होते हैं। PHP रिकर्सन या लूप का उपयोग करके ऐसे डेटा को आसानी से संसाधित करने की अनुमति देता है।
<?php$complexJson = '{ "users": [ {"name": "Alice