परिचय: PHP में JSON गड़बड़ क्यों दिखता है?
\n\nकल्पना करें: आपने PHP में एक स्क्रिप्ट लिखी है जो API से डेटा लेती है या फ्रंटएंड के लिए रिस्पॉन्स तैयार करती है। आप echo json_encode($data) से रिजल्ट प्रिंट करते हैं — और ब्राउज़र या कंसोल में कुछ ऐसा दिखता है:
{"users":[{"id":1,"name":"राहुल","email":"rahul@example.com"},{"id":2,"name":"प्रिया","email":"priya@example.com"}]}\n\nमान गए, इस बिना फॉर्मेट की लाइन को पढ़ना डॉक्टर की लिखावट समझने जैसा है। खासकर जब डेटा ज़्यादा हो और नेस्टिंग गहरी हो। यहीं पर PHP में JSON का pretty-printing काम आता है।
\n\nयह लेख उनके लिए है जो PHP और JSON के साथ काम करना शुरू कर रहे हैं। हम सीखेंगे कि JSON आउटपुट को सुंदर, पढ़ने योग्य और डीबग करने में आसान कैसे बनाया जाए। आप न सिर्फ बुनियादी तरीके जानेंगे, बल्कि ऐसे उपयोगी टिप्स भी सीखेंगे जो आपके घंटों बचाएंगे। चलिए शुरू करते हैं!
\n\nPretty-print क्या है और इसकी ज़रूरत क्यों है?
\n\nPretty-print (शाब्दिक अर्थ: 'सुंदर प्रिंट') डेटा को इंडेंटेशन, लाइन ब्रेक और अलाइनमेंट के साथ फॉर्मेट करना है। JSON के मामले में, इसका मतलब है कि एक लंबी लाइन के बजाय आपको एक स्ट्रक्चर्ड आउटपुट मिलेगा जहाँ हर की और वैल्यू अपनी जगह पर होगी।
\n\nसोचिए, आप किसी API रिक्वेस्ट को डीबग कर रहे हैं या कॉन्फिग फ़ाइल चेक कर रहे हैं। Pretty-print के बिना आप यह समझने में बहुत समय बर्बाद करेंगे कि एक ऑब्जेक्ट कहाँ खत्म होता है और दूसरा कहाँ शुरू होता है। फॉर्मेटिंग के साथ, सब कुछ साफ दिखता है।
\n\nPHP में JSON को खूबसूरती से प्रिंट करने के कई तरीके हैं। हम सबसे आसान और लोकप्रिय तरीके से शुरू करेंगे — JSON_PRETTY_PRINT फ्लैग का उपयोग।
तरीका 1: JSON_PRETTY_PRINT — आपका सबसे अच्छा दोस्त
\n\nPHP में JSON को pretty-print करने का सबसे आसान तरीका है json_encode() फंक्शन में JSON_PRETTY_PRINT कॉन्स्टेंट का उपयोग करना। यह कॉन्स्टेंट PHP 5.4.0 से उपलब्ध है।
बुनियादी उदाहरण
\n\n<?php\n$data = [\n 'users' => [\n ['id' => 1, 'name' => 'राहुल', 'email' => 'rahul@example.com'],\n ['id' => 2, 'name' => 'प्रिया', 'email' => 'priya@example.com']\n ]\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT);\necho $json;\n?>\n\nपरिणाम:
\n\n{\n "users": [\n {\n "id": 1,\n "name": "राहुल",\n "email": "rahul@example.com"\n },\n {\n "id": 2,\n "name": "प्रिया",\n "email": "priya@example.com"\n }\n ]\n}\n\nअब बहुत बेहतर है, है ना? हर एरे एलिमेंट अलग लाइन पर है, इंडेंटेशन सही है, और स्ट्रक्चर समझना आसान है।
\n\nअन्य फ्लैग के साथ कॉम्बिनेशन
\n\nJSON_PRETTY_PRINT को अन्य फ्लैग के साथ जोड़कर और बेहतर कंट्रोल पाया जा सकता है। उदाहरण के लिए:
- \n
- JSON_UNESCAPED_UNICODE — हिंदी और अन्य Unicode कैरेक्टर्स को एस्केप नहीं करता (
\\u0930\\u093e\\u0939\\u0941\\u0932की जगहराहुलदिखेगा)। \n - JSON_UNESCAPED_SLASHES — स्लैश को एस्केप नहीं करता (URL के लिए उपयोगी)। \n
- JSON_NUMERIC_CHECK — नंबर वाली स्ट्रिंग को न्यूमेरिक टाइप में बदलता है। \n
<?php\n$data = [\n 'message' => 'नमस्ते दुनिया!',\n 'url' => 'https://example.com/api/v1/users'\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);\necho $json;\n?>\n\nपरिणाम:
\n\n{\n "message": "नमस्ते दुनिया!",\n "url": "https://example.com/api/v1/users"\n}\n\nध्यान दें: हिंदी सही दिख रही है, स्लैश एस्केप नहीं हुए हैं। इंसानों के लिए JSON आउटपुट इसी तरह होना चाहिए।
\n\nतरीका 2: पहले से मौजूद JSON स्ट्रिंग को फॉर्मेट करना
\n\nअगर आपके पास पहले से JSON स्ट्रिंग है (जैसे फ़ाइल या डेटाबेस से मिली), और उसे फॉर्मेट करना है, तो क्या करें?