परिचय: क्यों "गंदा" JSON किसी भी डेवलपर का दुश्मन है
\n\nकल्पना करें: आप PHP में एक API लिख रहे हैं, JSON प्रारूप में डेटा लौटा रहे हैं, ब्राउज़र या कंसोल में परिणाम खोलते हैं — और आपको एक लगातार स्ट्रिंग दिखाई देती है जिसमें एक भी स्पेस नहीं है:
\n\n{"users":[{"id":1,"name":"इवान","email":"ivan@example.com"},{"id":2,"name":"मारिया","email":"maria@example.com"}]}\n\nआँखें थक जाती हैं, आवश्यक फ़ील्ड ढूँढना असंभव है, और अगर JSON में कोई त्रुटि है — तो आप उसे खोजने में घंटों बिताएँगे। परिचित स्थिति? यही कारण है कि Stack Overflow पर प्रश्न "PHP के साथ Pretty-Printing JSON" ने हज़ारों व्यूज़ प्राप्त किए हैं। आज हम एक बार और हमेशा के लिए समझेंगे कि PHP के साथ JSON को पढ़ने योग्य, संरचित और सुंदर कैसे बनाया जाए।
\n\nइस लेख में आप जानेंगे:
\n- \n
- pretty-printing क्या है और इसकी आवश्यकता क्यों है \n
- फ़्लैग के साथ बिल्ट-इन फ़ंक्शन
json_encodeका उपयोग कैसे करें \n - डीबगिंग, लॉग और ब्राउज़र आउटपुट के लिए JSON को कैसे फ़ॉर्मेट करें \n
- अतिरिक्त तकनीकें: रिकर्सिव फ़ॉर्मेटिंग, Unicode के साथ काम करना और संपीड़न \n
चलिए शुरू करते हैं!
\n\nJSON का pretty-printing क्या है?
\n\nPretty-printing (अंग्रेज़ी से "सुंदर मुद्रण") — इंडेंटेशन, लाइन ब्रेक और संरेखण के साथ डेटा को फ़ॉर्मेट करना है ताकि कोई व्यक्ति संरचना को आसानी से पढ़ सके। JSON के मामले में, यह "गड़बड़" को एक साफ़ पदानुक्रम में बदल देता है:
\n\n{\n "users": [\n {\n "id": 1,\n "name": "इवान",\n "email": "ivan@example.com"\n },\n {\n "id": 2,\n "name": "मारिया",\n "email": "maria@example.com"\n }\n ]\n}\n\nमान गए, इस तरह काम करना कहीं अधिक सुखद है! PHP इसके लिए बिल्ट-इन टूल प्रदान करता है, जिन्हें अतिरिक्त लाइब्रेरी स्थापित करने की आवश्यकता नहीं है।
\n\nमुख्य विधि: JSON_PRETTY_PRINT फ़्लैग के साथ json_encode
\n\nसबसे सरल और सामान्य तरीका — फ़ंक्शन json_encode() के दूसरे पैरामीटर का उपयोग करना है, जिसमें कॉन्स्टेंट JSON_PRETTY_PRINT पास करें। यहाँ एक बुनियादी उदाहरण है:
<?php\n$data = [\n 'name' => 'PythonLib',\n 'type' => 'educational',\n 'topics' => ['PHP', 'Python', 'JavaScript'],\n 'stats' => [\n 'visitors' => 15000,\n 'rating' => 4.8\n ]\n];\n\n$prettyJson = json_encode($data, JSON_PRETTY_PRINT);\necho $prettyJson;\n?>\n\nपरिणाम:
\n\n{\n "name": "PythonLib",\n "type": "educational",\n "topics": [\n "PHP",\n "Python",\n "JavaScript"\n ],\n "stats": {\n "visitors": 15000,\n "rating": 4.8\n }\n}\n\nध्यान दें: कुंजियाँ वर्णमाला क्रम में क्रमबद्ध होती हैं। यदि आप मूल क्रम बनाए रखना चाहते हैं — तो फ़्लैग JSON_PRESERVE_ZERO_FRACTION (फ़्लोटिंग पॉइंट संख्याओं के लिए) का उपयोग करें या मैन्युअल रूप से ऐरे को सॉर्ट करें।
फ़्लैग का संयोजन
\n\nआप | (बिटवाइज़ OR) के माध्यम से कई फ़्लैग पास कर सकते हैं। उदाहरण के लिए, एक साथ फ़ॉर्मेट करने और Unicode वर्णों को एस्केप करने के लिए:
$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);\necho $json;\n\nफ़्लैग JSON_UNESCAPED_UNICODE सिरिलिक और अन्य वर्णों को पढ़ने योग्य रूप में रखता है, न कि \\u0438\\u0432\\u0430\\u043d के रूप में। यह विशेष रूप से रूसी भाषा की साइटों के लिए उपयोगी है।
ब्राउज़र में pretty-printed JSON कैसे प्रदर्शित करें
\n\nयदि आप एक API विकसित कर रहे हैं और चाहते हैं कि JSON सीधे ब्राउज़र में खूबसूरती से दिखे (उदाहरण के लिए, डीबगिंग करते समय), तो फ़ॉर्मेटिंग के साथ हेडर Content-Type: application/json का उपयोग करें:
<?php\nheader('Content-Type: application/json; charset=utf-8');\n\n$response = [\n 'status' => 'success',\n 'data' => [\n 'message' => 'नमस्ते, दुनिया!',\n 'code' => 200\n ]\n];\n\necho