JSON फ़ॉर्मेटर
JSON को सुंदर बनाएं, छोटा करें और जांचें - और यदि यह पार्स नहीं होता है, तो सटीक स्थान जानें।
इनपुट
0 वर्णआउटपुट
JSON को सुंदर बनाएं, छोटा करें और जांचें - और यदि यह पार्स नहीं होता है, तो सटीक स्थान जानें।
किसी API लॉग या कॉन्फ़िगरेशन फ़ाइल से निकला JSON आमतौर पर एक लंबी लाइन होता है, और जो JSON पार्स नहीं होता वह आमतौर पर किसी ऐसी जगह विफल होता है जो आपको दिखाई नहीं देती। यह उसे इंडेंट करता है ताकि आप उसे पढ़ सकें, जब आपको छोटा चाहिए तो उसे मिनिफाई करता है, और जब वह टूटा हुआ हो तो आपको लाइन और कॉलम बताता है और वह लाइन दिखाता है।
ज़्यादातर समय आप यहाँ JSON को सुंदर बनाने के लिए नहीं हैं - आप इसलिए हैं क्योंकि किसी चीज़ ने उसे अस्वीकार कर दिया और यह नहीं बताया कि क्यों। पार्सर लाइन, कॉलम और जो उसने अपेक्षित किया था वह बताता है, और टूल उस लाइन को उसके आसपास की दो लाइनों के साथ प्रिंट करता है। कॉन्फ़िगरेशन में चार सौ लाइन अंदर एक छूटा हुआ कॉमा, एक बार पता चलने पर कि वह कहाँ है, तीस सेकंड की सुधार है।
JSON ने इनमें से किसी को भी कभी अनुमति नहीं दी, लेकिन जो फ़ाइलें लोग वास्तव में आपको देते हैं - tsconfig, VS Code सेटिंग्स, हाथ से संपादित कुछ भी - इनसे भरी होती हैं। विकल्प को चेक करने से पार्सिंग से पहले इन्हें हटा दिया जाता है, और फिर टूल बताता है कि उसने कितने कमेंट और कितने कॉमा हटाए। यह ऐच्छिक है और सटीक रूप से बताया जाता है क्योंकि एक फॉर्मेटर जो चुपचाप आपके दस्तावेज़ को बदल देता है, उस फॉर्मेटर से बदतर है जो उसे अस्वीकार कर देता है।
यह अनुमान नहीं लगाता कि आपका मतलब क्या था। ऊपर बताई गई दो हटाने की प्रक्रियाओं के अलावा, कुछ भी ठीक नहीं किया जाता: एक अधूरा ब्रेस, एकल-उद्धरण वाली कुंजी या बिना उद्धरण वाली कुंजी बताई जाती है, फिर से नहीं लिखी जाती। कुंजियों को क्रमबद्ध करना और फिर से इंडेंट करना कभी किसी ऐरे का क्रम या किसी स्ट्रिंग को नहीं बदलता। अगला खंड उन कुछ मामलों को बताता है जिनमें आउटपुट फिर भी आपके पेस्ट किए गए से अलग हो सकता है।
आपका JSON पार्स करके फिर से लिखा जाता है, इसलिए कुछ चीज़ें मानकीकृत रूप में लौटती हैं। संख्याएँ फिर से लिखी जाती हैं: 1.50 बन जाता है 1.5, 1E3 बन जाता है 1000.0 और -0 बन जाता है 0, और 64-बिट float में समा सकने से अधिक अंकों वाला दशमलव पूर्णांकित हो जाता है (0.1000000000000000055 बन जाता है 0.1)। पूर्णांक 4,300 अंकों तक बिल्कुल वैसे ही रहते हैं (इससे लंबे अस्वीकार कर दिए जाते हैं)। अगर किसी ऑब्जेक्ट में कोई कुंजी दोहराई गई है, तो केवल अंतिम मान रहता है, बिना किसी चेतावनी के। NaN, Infinity और -Infinity स्वीकार किए जाते हैं और वैसे ही आगे जाते हैं, जबकि मानक JSON (RFC 8259) इनकी अनुमति नहीं देता, और float के लिए बहुत बड़ी संख्या, जैसे 1e400, Infinity के रूप में निकलती है। अगर इनमें से कुछ भी उस सिस्टम के लिए मायने रखता है जिसे आप डेटा दे रहे हैं, तो त्रुटि-रहित परिणाम पर भरोसा करने से पहले खुद जाँच लें।
इसे पार्स करने के लिए सर्वर पर भेजा जाता है और उसी प्रतिक्रिया में सीधे वापस भेज दिया जाता है। कुछ भी डिस्क पर नहीं लिखा जाता, कैश नहीं किया जाता या लॉग नहीं किया जाता, और उपयोग रिकॉर्ड केवल गिनती रखता है - आकार, नेस्टिंग गहराई, चुना गया मोड - कभी भी दस्तावेज़ नहीं।
आमतौर पर कमेंट, अंतिम कॉमा, एकल उद्धरण या बिना उद्धरण वाली कुंजियों के कारण - ये सभी कॉन्फ़िगरेशन फ़ाइलों में आम हैं और इनमें से कोई भी वैध JSON नहीं है। पहले दो के लिए "कमेंट और अंतिम कॉमा की अनुमति दें" चेक करें; बाकी वास्तव में अमान्य हैं और उन्हें ठीक करना होगा।
हर अनुरोध में 2,000,000 अक्षरों तक; इससे लंबा टेक्स्ट उसकी सटीक लंबाई बताकर अस्वीकार कर दिया जाता है। उस आकार की फ़ाइलों के लिए jq जैसा कमांड-लाइन टूल बेहतर साधन है।
लॉग पाइपलाइन और स्ट्रीमिंग लोडर एक बड़े ऐरे के बजाय प्रति लाइन एक JSON ऑब्जेक्ट पढ़ते हैं। इसे चुनें और एक टॉप-लेवल ऐरे प्रति लाइन एक कॉम्पैक्ट रिकॉर्ड के रूप में वापस आता है।
नहीं। ऑब्जेक्ट की कुंजी का क्रम JSON में सार्थक नहीं है, और ऐरे का क्रम - जो सार्थक है - कभी नहीं छुआ जाता। क्रमबद्ध करना इसलिए है ताकि एक ही दस्तावेज़ के दो संस्करणों की बिना शोर के तुलना की जा सके।
Microsoft 365 वाले Excel में इसे .json फ़ाइल के रूप में सेव करें और Data > Get Data > From File > From JSON चुनें। Power Query इसे खोलता है: सबसे ऊपरी स्तर का array एक List के रूप में दिखता है, To Table उसे Records वाले एक कॉलम में बदल देता है, और कॉलम हेडर में expand बटन (दो तीर) हर key को अलग कॉलम में फैला देता है; nested array को expand करने पर हर आइटम के लिए एक पंक्ति जुड़ती है। Power Query को एक ही मान्य JSON दस्तावेज़ चाहिए, इसलिए पहले यहीं गलतियाँ ठीक करें, जहाँ पंक्ति और कॉलम बताए जाते हैं, फिर सुंदर बनाएँ या मिनिफाई करें का आउटपुट सेव करें; JSON Lines आउटपुट लॉग टूल के लिए है। यह टूल खुद JSON को CSV या Excel में नहीं बदलता।
Python में जांचने का तरीका पहले से मौजूद है: python -m json.tool data.json दस्तावेज़ को 4 स्पेस के इंडेंट के साथ दिखाता है, या Expecting ',' delimiter: line 3 column 3 जैसे संदेश के साथ रुक जाता है। jq इंस्टॉल हो तो jq . data.json फ़ॉर्मैट करता है और jq empty data.json सिर्फ़ जांचता है, फ़ाइल सही होने पर कुछ नहीं दिखाता। दोनों में से कोई भी comments या trailing commas स्वीकार नहीं करता, इसलिए इन्हें रखने वाली config फ़ाइल वहां फ़ेल होगी; उसे यहां पेस्ट करें और "Comments और trailing commas की अनुमति दें" चुनें ताकि दिखे कि क्या हटाया गया।
पार्सर को किसी object की key चाहिए थी, पर उसे कुछ और मिला। आम तौर पर keys single quotes में होती हैं या बिना quotes के, जैसे Python या JavaScript से कॉपी किया गया {'name': 'Asha'}, जो लाइन 1, कॉलम 2 पर रुक जाता है: JSON में हर key और हर string के चारों ओर double quotes ज़रूरी हैं, और यह टूल quotes कभी नहीं बदलता, इसलिए उन्हें खुद ठीक करें। यही संदेश किसी बंद होने वाले brace पर आए, जैसे {"a": 1,} में, तो वजह trailing comma है; उसे हटाने के लिए "Comments और trailing commas की अनुमति दें" चुनें। True, False या None पर Expecting value का मतलब है Python की values: JSON में true, false और null छोटे अक्षरों में लिखे जाते हैं। Python में json.dumps(data) सही JSON देता है, print(data) नहीं। त्रुटियां ठीक वैसे ही दिखाई जाती हैं जैसे Python का पार्सर उन्हें लिखता है, अंग्रेज़ी में, ताकि आप संदेश को जैसा है वैसा सर्च कर सकें।
पार्सर ने एक पूरी JSON value पढ़ ली और उसके बाद और टेक्स्ट मिला। आम कारण: हर लाइन में एक object वाला JSON Lines (NDJSON) लॉग, जो लाइन 2, कॉलम 1 पर रुकता है; एक के बाद एक पेस्ट किए गए दो दस्तावेज़; या आखिरी बंद brace के बाद // comment, जिसे "Comments और trailing commas की अनुमति दें" हटा देता है। यह टूल एक बार में एक ही दस्तावेज़ जांचता है, इसलिए एक ही record पेस्ट करें, या records को commas से अलग करके [ ] के अंदर रखें; फिर JSON Lines चुनने पर वे दोबारा एक-एक लाइन में लिखे जाते हैं।