JSON फॉर्मेट और वैलिडेट करें
JSON फाइल को इंडेंट या मिनिफाई करें, या सिर्फ जांचें। गड़बड़ी की लाइन और कॉलम बताए जाते हैं, और चुपचाप रह जाने वाली समस्याएं भी खुलकर गिनाई जाती हैं।
फाइलें यहां छोड़ें
.json, .jsonc, .txt · 100 MB तक
कैसे JSON फॉर्मेट करें
- 1
JSON फाइल डालें
एक फाइल या बीस तक जोड़ें, हर एक 100 MB तक। कमेंट और आखिरी कॉमा वाली फाइलें भी ली जाती हैं।
- 2
फॉर्मेट, मिनिफाई या वैलिडेट चुनें
फॉर्मेट डॉक्यूमेंट को इंडेंट करता है, मिनिफाई हर गैरजरूरी बाइट हटा देता है, और वैलिडेट कोई फाइल बनाए बिना सिर्फ बताता है कि उसे क्या मिला।
- 3
रिपोर्ट पढ़ें और डाउनलोड करें
गड़बड़ियां लाइन और कॉलम के साथ आती हैं; चेतावनियों में दोहराई गई कुंजियां और नंबरों की सटीकता का नुकसान गिनाया जाता है। परिणाम ठीक लगे, तो उसे सेव करें।
गड़बड़ी की सटीक जगह, गोलमोल जवाब नहीं
पार्सिंग की गड़बड़ियों पर ब्राउजर एक राय नहीं रखते: कुछ कैरेक्टर का ऑफसेट बताते हैं, कुछ सिर्फ एक वाक्य, और शब्द वर्जन के साथ बदल जाते हैं। इसीलिए यहां JSON को इस टूल के लिए लिखा गया पार्सर पढ़ता है, जो हर गड़बड़ी को लाइन और कॉलम में बदल देता है। 40,000 ऑब्जेक्ट वाले एक्सपोर्ट में यह जानना कि भटका हुआ कॉमा लाइन 8,421 पर है, दो मिनट के सुधार और पूरी बर्बाद दोपहर के बीच का फर्क है।
दोहराई गई कुंजियां और चुपचाप बदलते नंबर
दो समस्याएं सामान्य पार्सिंग में कभी सामने नहीं आतीं। एक ही ऑब्जेक्ट में दोहराई गई कुंजी ज्यादातर पार्सर के लिए जायज है: वे आखिरी वैल्यू रख लेते हैं और कुछ नहीं कहते। यहां दोनों लाइन नंबर दिखाए जाते हैं। दूसरी समस्या: 2^53 से लंबा पूर्णांक, जैसे 9007199254740993, JSON नंबर के रूप में ठीक-ठीक नहीं रखा जा सकता; वह एक कम होकर लौटता है। बाहरी API के आइडेंटिफायर में यह लगातार होता है, इसलिए ऐसी हर वैल्यू उसके पाथ के साथ बताई जाती है।
ढीला इनपुट, सख्त आउटपुट
असली फाइलें // कमेंट, /* ब्लॉक कमेंट */ और आखिरी एंट्री के बाद कॉमा के साथ आती हैं। यह सब पढ़ा जा सकता है, और मानक का पालन करने वाला हर पार्सर इसे ठुकरा देता है। लचीला मोड यह सब स्वीकार करता है और बताता है कि उसने क्या हटाया। आउटपुट हमेशा सादा, सही JSON होता है। यह साबित करने के लिए कि फाइल पहले से मानक के अनुसार है, सख्त इनपुट पर स्विच करें।
आपका डेटा टैब में ही रहता है
API डंप और कॉन्फिग एक्सपोर्ट में अक्सर टोकन, पते और ग्राहकों के रिकॉर्ड होते हैं, इसलिए इनमें से कुछ भी कहीं नहीं भेजा जाता। फाइल आपके ब्राउजर के अंदर ही पढ़ी, पार्स, जांची और दोबारा लिखी जाती है; बड़ी फाइलें अलग वर्कर थ्रेड में संभाली जाती हैं। न अपलोड, न अकाउंट, और टैब बंद होने के बाद कोई कॉपी नहीं बचती।
अक्सर पूछे जाने वाले सवाल
कमेंट वाली मेरी JSON फिर भी पास क्यों हो जाती है?
क्योंकि डिफॉल्ट इनपुट मोड लचीला है: // और /* */ कमेंट और आखिरी कॉमा स्वीकार किए जाते हैं, चेतावनी के रूप में बताए जाते हैं और आउटपुट से हटा दिए जाते हैं। हाथ से एडिट की गई कॉन्फिग फाइलों के लिए यही व्यावहारिक है। अगर आपको खास तौर पर साबित करना है कि फाइल मानक JSON है, तो इनपुट मोड सख्त पर करें, तब यही चीजें गड़बड़ी बन जाती हैं।
“अनपेक्षित टोकन” वाली गड़बड़ी का असल में क्या मतलब है?
यह कि पार्सर को किसी जगह ऐसा कैरेक्टर मिला, जिसका वह वहां इस्तेमाल नहीं कर सकता। आम वजहें: कॉमा छूट जाना या ज्यादा लग जाना, डबल कोट की जगह सिंगल कोट, बिना कोट की कुंजी, या वैल्यू का बहुत जल्दी खत्म हो जाना। संदेश में लाइन और कॉलम होते हैं, इसलिए बताई गई जगह से एक-दो टोकन पहले से पढ़ना शुरू करें।
JSON से सारा इंडेंटेशन कैसे हटाएं?
मिनिफाई चुनें। हर गैरजरूरी स्पेस, टैब और नई लाइन हटा दी जाती है, और परिणाम एक लाइन का होता है, जो आम तौर पर इंडेंट वाले रूप से 15 से 30 प्रतिशत छोटा होता है। पार्स किया गया डेटा बिल्कुल वही रहता है, इसलिए जहां इंडेंट वाली फाइल चलती थी, वहां मिनिफाई की हुई फाइल सीधे उसकी जगह ले सकती है।
नंबरों की सटीकता का नुकसान क्या है?
JSON के नंबर फ्लोटिंग पॉइंट होते हैं, इसलिए 2^53 से बड़े सभी पूर्णांक ठीक-ठीक नहीं लिखे जा सकते। 9007199254740993 डालें, तो वापस 9007199254740992 मिलता है। बाहरी सिस्टम के लंबे आइडेंटिफायर इसके आम शिकार हैं। इस समस्या वाली हर वैल्यू उसके पाथ के साथ चिह्नित की जाती है, और पक्का हल यह है कि डेटा भेजने वाला API ऐसे ID को स्ट्रिंग के रूप में भेजे।
क्या कुंजियों को वर्णमाला के क्रम में लगा सकते हैं?
हां, सॉर्टिंग एक स्विच है और नेस्टिंग के हर स्तर पर लागू होती है। दो एक्सपोर्ट की तुलना से पहले यह सबसे काम का है, क्योंकि यह क्रम के बेमतलब अंतर हटा देता है और तुलना में सिर्फ असली बदलाव छोड़ता है। JSON में कुंजियों के क्रम का कोई मतलब नहीं होता, इसलिए सॉर्ट करने से कुछ नहीं खोता।
वैलिडेट मोड अलग क्या करता है?
यह जांच के बाद रुक जाता है। आपको फैसला और गड़बड़ियों व चेतावनियों की पूरी सूची मिलती है, डाउनलोड के लिए कोई फाइल नहीं बनती। इसे तब इस्तेमाल करें, जब आपको सिर्फ यह जानना हो कि फाइल ठीक है या नहीं, जैसे बिल्ड से बनी फाइल या API का जवाब जिसे आप भेजने वाले हैं, और उसे दोबारा लिखने का इरादा न हो।
क्या मेरी JSON कहीं अपलोड होती है?
नहीं। पार्सिंग, जांच और दोबारा लिखना, सब आपके ब्राउजर टैब में पेज के साथ आए कोड से होता है। ऐसा कोई सर्वर नहीं है जो टेक्स्ट पाता हो, कुछ भी लॉग नहीं होता, और टैब बंद करने के बाद कुछ नहीं बचता।