इस लेख में
आम JSON त्रुटियाँ
JSON के सख़्त सिंटैक्स नियम हैं जिनमें डेवलपर अक्सर उलझ जाते हैं। एक ग़लत जगह लगा कॉमा, बिना उद्धरण चिह्न वाली key, या आखिरी एलिमेंट के बाद लगा ट्रेलिंग कॉमा पूरे दस्तावेज़ को अमान्य बना देता है। मानक JSON पार्सर इन त्रुटियों को पूरी तरह अस्वीकार कर देते हैं, और आपको एक त्रुटि संदेश तथा लाइन नंबर के अलावा कुछ नहीं देते — न कोई आंशिक डेटा, न कोई सुझाव।
सबसे आम JSON त्रुटियों में शामिल हैं: आखिरी प्रॉपर्टी या ऐरे एलिमेंट के बाद ट्रेलिंग कॉमा, स्ट्रिंग के इर्द-गिर्द दोहरे उद्धरण चिह्नों के बजाय एकल उद्धरण चिह्न, बिना उद्धरण चिह्न वाली प्रॉपर्टी key, डेटा में जड़ी टिप्पणियाँ (// या /* */), गुम क्लोज़िंग ब्रैकेट या ब्रेस, और स्ट्रिंग मानों के भीतर बिना एस्केप किए विशेष अक्षर। JSON रिपेयर टूल इन सभी को अपने-आप ठीक कर देते हैं।
JSON रिपेयर कैसे काम करता है
एक JSON रिपेयर टूल साधारण find-and-replace रेगेक्स के बजाय पार्सर-आधारित दृष्टिकोण अपनाता है। यह इनपुट को अक्षर-दर-अक्षर पढ़ता है और एक स्टेट मशीन बनाए रखता है जो JSON संरचना (ऑब्जेक्ट, ऐरे, स्ट्रिंग, मान) में मौजूदा स्थिति को ट्रैक करती है। जब उसे अमान्य सिंटैक्स मिलता है, तो वह संदर्भ से इच्छित संरचना का अनुमान लगाकर उसे ठीक कर देता है।
- पार्सर-आधारित सुधार — रिपेयर इंजन एक पार्स स्टेट (ऑब्जेक्ट के भीतर, ऐरे के भीतर, स्ट्रिंग के भीतर, मान की अपेक्षा) बनाए रखता है और आँख मूँदकर रेगेक्स पैटर्न लागू करने के बजाय इस संदर्भ का उपयोग यह तय करने के लिए करता है कि सही सुधार क्या होना चाहिए
- ब्रैकेट और ब्रेस संतुलन — खुलने और बंद होने वाले ब्रैकेट/ब्रेस को ट्रैक करता है और दस्तावेज़ के अंत में गुम क्लोज़र अपने-आप जोड़ देता है, या उन्हें वहाँ डालता है जहाँ संरचना यह संकेत देती है कि उनका होना ज़रूरी है
- उद्धरण सामान्यीकरण — एकल उद्धरण चिह्नों को दोहरे उद्धरण चिह्नों में बदलता है, बिना उद्धरण चिह्न वाली key के इर्द-गिर्द गुम उद्धरण चिह्न जोड़ता है, और उन विशेष अक्षरों को ठीक से एस्केप करता है जो स्ट्रिंग मानों को तोड़ सकते हैं
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
JSON रिपेयर करें →LLM आउटपुट और अधूरा JSON
बड़े भाषा मॉडल (LLM) अक्सर विकृत JSON उत्पन्न करते हैं। वे टोकन सीमा तक पहुँचने पर आउटपुट को ऑब्जेक्ट के बीच में ही काट सकते हैं, गहराई से नेस्टेड संरचनाओं में क्लोज़िंग ब्रैकेट भूल सकते हैं, आखिरी प्रॉपर्टी के बाद ट्रेलिंग कॉमा जोड़ सकते हैं, या JSON ब्लॉक के भीतर व्याख्यात्मक टिप्पणियाँ शामिल कर सकते हैं। JSON रिपेयर इन सभी LLM-विशिष्ट समस्याओं को संभाल लेता है।
- अधूरा आउटपुट — जब कोई LLM टोकन सीमा के कारण ऑब्जेक्ट के बीच में ही उत्पन्न करना रोक देता है, तो रिपेयर टूल सभी खुली संरचनाओं (स्ट्रिंग, ऐरे, ऑब्जेक्ट) को सही क्रम में बंद कर देता है ताकि आंशिक आउटपुट से भी मान्य JSON बन सके
- Markdown कोड फ़ेंस — LLM अक्सर JSON को ```json...``` ब्लॉक में लपेट देते हैं। रिपेयर टूल प्रोसेसिंग से पहले इन फ़ेंस को हटा देता है, और फ़ेंस वाले तथा बिना फ़ेंस वाले दोनों प्रकार के JSON को सहजता से संभालता है
- मिश्रित सामग्री — LLM कभी-कभी JSON ब्लॉक से पहले या बाद में टेक्स्ट लिख देते हैं, या इनलाइन टिप्पणियाँ शामिल कर देते हैं। रिपेयर टूल केवल JSON वाला हिस्सा निकालता है और उसमें मौजूद किसी भी सिंटैक्स समस्या को ठीक कर देता है
अक्सर पूछे जाने वाले सवाल
क्या JSON रिपेयर विनाशकारी बदलाव कर सकता है?
JSON रिपेयर डिज़ाइन के हिसाब से रूढ़िवादी होता है — यह केवल सिंटैक्स त्रुटियों को ठीक करता है, डेटा मानों को कभी नहीं बदलता। ट्रेलिंग कॉमा हटाया जाता है, गुम ब्रैकेट जोड़ा जाता है, एकल उद्धरण चिह्न दोहरे में बदल जाते हैं, लेकिन वास्तविक डेटा (स्ट्रिंग, संख्याएँ, बूलियन, ऐरे, ऑब्जेक्ट) अछूता रहता है। रिपेयर किया गया आउटपुट अर्थ की दृष्टि से वैसा ही होता है जैसा लेखक चाहता था।
रिपेयर एन्कोडिंग समस्याओं को कैसे संभालता है?
JSON के लिए UTF-8 एन्कोडिंग ज़रूरी है। रिपेयर टूल आम एन्कोडिंग समस्याओं को संभालता है, जैसे फ़ाइल की शुरुआत में BOM (बाइट ऑर्डर मार्क), अमान्य एस्केप अनुक्रम (हेक्स के लिए \u के बजाय \x), और स्ट्रिंग के भीतर बिना एस्केप किए कंट्रोल अक्षर। यह इन्हें मान्य JSON-अनुरूप UTF-8 में सामान्य कर देता है।
क्या गहराई से नेस्टेड JSON की मरम्मत की जा सकती है?
हाँ। पार्सर-आधारित दृष्टिकोण किसी भी गहराई की नेस्टिंग को संभालता है क्योंकि यह खुली संरचनाओं का एक स्टैक बनाए रखता है। चाहे इनपुट में 3 स्तर की नेस्टिंग हो या 30 स्तर की, रिपेयर इंजन हर स्तर को ट्रैक करता है और किसी भी खुली रह गई संरचना को सही ढंग से बंद कर देता है। यहीं पर रेगेक्स-आधारित दृष्टिकोण पूरी तरह विफल हो जाते हैं।