PHP में JSON प्रोसेसिंग: पूर्ण गाइड
JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो क्लाइंट और सर्वर के बीच, साथ ही विभिन्न वेब सेवाओं के बीच बातचीत के लिए डी-फैक्टो मानक बन गया है। PHP में JSON के साथ काम करना मूल रूप से लागू किया गया है और इसके लिए किसी अतिरिक्त एक्सटेंशन की स्थापना की आवश्यकता नहीं है, जो इसे JSON डेटा को पार्स करने और उत्पन्न करने के लिए सबसे सुविधाजनक भाषाओं में से एक बनाता है। इस लेख में, हम PHP में JSON प्रोसेसिंग के सभी पहलुओं पर विस्तार से चर्चा करेंगे: बुनियादी फंक्शन से लेकर उन्नत तकनीकों और त्रुटि प्रबंधन तक।
JSON के साथ काम करने के लिए PHP के मुख्य फंक्शन
PHP JSON के साथ काम करने के लिए दो प्रमुख फंक्शन प्रदान करता है:
json_encode($value, $options = 0, $depth = 512)— PHP मान (ऐरे, ऑब्जेक्ट, स्ट्रिंग, संख्या) को JSON स्ट्रिंग में बदलता है।json_decode($json, $associative = false, $depth = 512, $options = 0)— JSON स्ट्रिंग को वापस PHP मान में डिकोड करता है। यदि पैरामीटर$associativeकोtrueपर सेट किया जाता है, तो एक एसोसिएटिव ऐरे लौटाया जाता है, अन्यथा एक stdClass ऑब्जेक्ट लौटाया जाता है।
आइए एक सरल उदाहरण देखें:
<?php// एक एसोसिएटिव ऐरे बनाएं$data = [ "name" => "इवान", "age" => 30, "city" => "मॉस्को", "skills" => ["PHP", "JavaScript", "Python"]];
// JSON में एनकोड करें$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $json;// आउटपुट:// {// "name": "इवान",// "age": 30,// "city": "मॉस्को",// "skills": ["PHP", "JavaScript", "Python"]// }
// वापस ऐरे में डिकोड करें$decoded = json_decode($json, true);echo $decoded['name']; // इवान?>json_encode के महत्वपूर्ण विकल्प
json_encode फंक्शन कई फ्लैग का समर्थन करता है जो एनकोडिंग के व्यवहार को बदलते हैं। उनमें से सबसे उपयोगी हैं:
JSON_UNESCAPED_UNICODE— यूनिकोड वर्णों (सिरिलिक, इमोजी) को एस्केप नहीं करता। इस फ्लैग के बिना, रूसी अक्षर \\uXXXX में बदल जाएंगे।JSON_PRETTY_PRINT— पठनीयता के लिए इंडेंटेशन और लाइन ब्रेक के साथ आउटपुट को फॉर्मेट करता है।JSON_NUMERIC_CHECK— संख्यात्मक स्ट्रिंग को संख्याओं में बदलता है।JSON_FORCE_OBJECT— ऐरे के बजाय जबरन एक ऑब्जेक्ट बनाता है, भले ही ऐरे खाली या इंडेक्स किया गया हो।JSON_PRESERVE_ZERO_FRACTION— पूर्णांक संख्याओं के लिए भिन्नात्मक भाग को संरक्षित करता है (उदाहरण के लिए, 10.0)।
विकल्पों के संयोजन का उदाहरण:
<?php$data = ['product' => 'किताब', 'price' => '1500.50', 'count' => 5];echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK);// {"product":"किताब","price":1500.5,"count":5}?>नेस्टेड संरचनाओं और जटिल ऑब्जेक्ट्स का प्रबंधन
PHP आपको गहराई से नेस्टेड JSON संरचनाओं के साथ काम करने की अनुमति देता है। आइए API से जटिल प्रतिक्रिया को पार्स करने का एक उदाहरण देखें:
<?php// मान लें कि यह किसी बाहरी API का प्रतिक्रिया है$apiResponse = '{ "status": "success", "data": { "users": [ {"id": 1, "name": "अन्ना", "roles": ["admin", "editor"]}, {"id": 2, "name": "पीटर", "roles": ["user"]} ], "pagination": { "page": 1, "totalPages": 3 } }}';
$parsed = json_decode($apiResponse, true);
// सभी उपयोगकर्ताओं के नाम निकालें$names = array_column($parsed['data']['users'], 'name');print_r($names); // Array ( [0] => अन्ना [1] => पीटर )
// जांचें कि क्या किसी उपयोगकर्ता के पास admin भूमिका हैforeach ($parsed['data']['users'] as $user) { if (in_array('admin', $user['roles'])) { echo "{$user['name']} के पास व्यवस्थापक अधिकार हैं"; }}?>JSON त्रुटियों का प्रबंधन
सबसे आम समस्याओं में से एक अमान्य JSON है। PHP त्रुटियों के निदान के लिए फंक्शन प्रदान करता है:
json_last_error()— अंतिम JSON एनकोडिंग/डिकोडिंग त्रुटि का कोड लौटाता है।json_last_error_msg()— अंतिम त्रुटि का विवरण लौटाता है।
त्रुटि प्रबंधन का उदाहरण:
<?php$invalidJson = \'{name: "जॉन"}\'; // अमान्य JSON (कुंजी उद्धरणों में नहीं है)$result = json_decode($invalidJson);
if (json_last_error() !== JSON_ERROR_NONE) { echo "JSON त्रुटि: " . json_last_error_msg(); // JSON त्रुटि: Syntax error}?>बड़े JSON के साथ काम करने के लिए टिप्स
बड़ी फ़ाइलों या स्ट्रीम के साथ काम करते समय, मेमोरी में पूरी फ़ाइल लोड करना अक्षम हो सकता है। ऐसे मामलों में, आप स्ट्रीमिंग पार्सर्स का उपयोग कर सकते हैं या डेटा को भागों में संसाधित कर सकते हैं। PHP में बड़ी JSON फ़ाइलों के साथ काम करने के लिए कोई अंतर्निहित स्ट्रीमिंग पार्सर नहीं है, लेकिन आप तृतीय-पक्ष लाइब्रेरी जैसे json-machine या salsify/json-streaming-parser का उपयोग कर सकते हैं।
निष्कर्ष
PHP में JSON प्रोसेसिंग एक शक्तिशाली और लचीला उपकरण है जो आपको किसी भी जटिलता के डेटा के साथ काम करने की अनुमति देता है। मुख्य फंक्शन json_encode और json_decode में महारत हासिल करना, साथ ही त्रुटियों को संभालने और ऑप्टिमाइज़ेशन टिप्स को समझना, आपको PHP में JSON के साथ कुशलतापूर्वक काम करने में मदद करेगा।
पुस्तकालय में भी
PHP पर छवियों के साथ कार्य: resize, crop (आकार बदलना और क्रॉप करना)
Swift पर ईमेल भेजना: SMTP और MailKit के लिए पूर्ण गाइड
Go (Golang) में XML के साथ कार्य: encoding/xml पैकेज और विकल्प
जावा भू-स्थान और मानचित्रों के लिए: लाइब्रेरीज़, API और उदाहरण