JSON को XML में कन्वर्ट करें
JSON से सही XML डॉक्यूमेंट बनाएं: रूट और आइटम टैग के नाम आप तय करते हैं। जो कुंजियां (key) XML में नहीं चलतीं, उन्हें हटाया नहीं जाता, ठीक किया जाता है।
फाइलें यहां छोड़ें
.json, .ndjson, .txt · 300 MB तक
और सेटिंगकम सेटिंग
कैसे XML में कन्वर्ट करें
- 1
JSON फाइल डालें
एक फाइल डालें या बीस तक। टेक्स्ट इसी ब्राउजर टैब में पढ़ा और पार्स किया जाता है। सिंटैक्स की गलती हो, तो उसकी सटीक लाइन और कॉलम बताया जाता है।
- 2
रूट और आइटम टैग के नाम दें
रूट पूरे डॉक्यूमेंट को घेरता है; आइटम का नाम हर ऐरे की हर एंट्री के लिए दोहराया जाता है। जो कुंजियां एट्रिब्यूट प्रीफिक्स से शुरू होती हैं, वे एट्रिब्यूट बन जाती हैं।
- 3
कन्वर्ट करें और XML डाउनलोड करें
बटन दबाएं और डिक्लेरेशन वाला, इंडेंट किया हुआ डॉक्यूमेंट पाएं। कई फाइलें एक साथ हों, तो वे एक ZIP आर्काइव में आती हैं।
वे कुंजियां, जिन्हें XML टैग के नाम के रूप में नहीं मानता
JSON ऑब्जेक्ट की कुंजियों पर लगभग कोई रोक नहीं है, पर XML एलिमेंट के नाम पर है। “2024 sales”, “order id” और खाली स्ट्रिंग, तीनों सही कुंजियां हैं, पर इनमें से किसी को टैग के रूप में नहीं लिखा जा सकता। ऐसे फील्ड चुपचाप हटा देने से डेटा खो जाता। इसलिए गलत अक्षर अंडरस्कोर बन जाते हैं और अंक से शुरू होने वाले नाम के आगे n लग जाता है। क्या था और क्या बना, इसकी पूरी सूची परिणाम के साथ मिलती है।
वे अक्षर, जिन्हें XML बिल्कुल नहीं मानता
एम्परसेंड और एंगल ब्रैकेट एस्केपिंग से संभल जाते हैं। 0x20 से नीचे के कंट्रोल कैरेक्टर अलग समस्या हैं: XML 1.0 उन्हें किसी भी रूप में लिखे जाने पर नहीं मानता, और न एंटिटी उन्हें बचाती है, न CDATA ब्लॉक। स्प्रेडशीट की किसी सेल से कॉपी होकर आया एक अकेला 0x0B पूरे डॉक्यूमेंट को पार्स होने लायक नहीं छोड़ता। इसलिए ऐसे बाइट हटा दिए जाते हैं और गिने जाते हैं, और उनकी गिनती परिणाम के पास दिखती है।
एट्रिब्यूट, टेक्स्ट नोड और null
एट्रिब्यूट प्रीफिक्स (डिफॉल्ट रूप से @_) से शुरू होने वाली कुंजी चाइल्ड एलिमेंट नहीं बनती, अपने पैरेंट का एट्रिब्यूट बनती है। टेक्स्ट वाली कुंजी में एलिमेंट का अपना टेक्स्ट होता है। JSON में null है, पर XML में उसके बराबर कुछ नहीं, इसलिए चुनना आपको है: खाली एलिमेंट, xsi:nil वाला एलिमेंट या कोई एलिमेंट नहीं।
फाइल इस टैब से बाहर नहीं जाती
फाइल पढ़ना, JSON पार्स करना, नाम ठीक करना और XML बनाना, सब आपके ब्राउजर में एक वर्कर थ्रेड में होता है, उस कोड से, जो पेज के साथ आया है। न कोई अपलोड है, न प्रोसेसिंग की कतार, न अकाउंट। टैब बंद करें और फाइल चली जाती है, क्योंकि उसकी कोई कॉपी कहीं और बनी ही नहीं थी।
अक्सर पूछे जाने वाले सवाल
रूट एलिमेंट का नाम कैसे सेट करें?
रूट का नाम पेज का पहला फील्ड है, और डिफॉल्ट रूप से root होता है। उसे XML का सही नाम होना चाहिए: अक्षर, अंक, बिंदु, हाइफन और अंडरस्कोर, पर शुरुआत न अंक से हो, न रिजर्व्ड प्रीफिक्स xml से। नाम सही न हो, तो आपको तुरंत बताया जाता है और सुधार भी सुझाया जाता है।
JSON कुंजी को XML एट्रिब्यूट कैसे बनाएं?
अपने JSON में कुंजी के आगे @_ लगाएं। तब वह अंदर का टैग नहीं, अपने बाहरी एलिमेंट का एट्रिब्यूट बनती है। प्रीफिक्स तीन अक्षर तक बदला जा सकता है। उसे खाली कर दें, तो एट्रिब्यूट बनाना पूरी तरह बंद हो जाता है और हर कुंजी एलिमेंट बनती है।
जो कुंजियां XML टैग का सही नाम नहीं हैं, उनका क्या होता है?
डिफॉल्ट रूप से उन्हें ठीक किया जाता है: गलत अक्षर अंडरस्कोर बन जाते हैं, शुरुआती अंक के आगे n लगता है, और खाली कुंजी की जगह आइटम का नाम आ जाता है। जो नाम बदले गए, उनकी सूची चेतावनी में मिलती है। आप चाहें तो हर सुधार बिना चेतावनी के लागू करवा सकते हैं, या पहली गलत कुंजी पर ही गड़बड़ी के साथ काम रुकवा सकते हैं।
null वैल्यू का क्या होता है?
तीन विकल्प हैं। खाली एलिमेंट से फील्ड डॉक्यूमेंट में दिखता रहता है। xsi:nil उसे साफ तौर पर null बताता है, जैसा स्कीमा समझने वाले प्रोग्राम उम्मीद करते हैं, और रूट पर नेमस्पेस घोषित करता है। छोड़ने पर फील्ड लिखा ही नहीं जाता। डिफॉल्ट खाली एलिमेंट है, क्योंकि वापस JSON में बदलने पर उसका नतीजा सबसे भरोसेमंद रहता है।
CDATA की जरूरत कब पड़ती है?
कम ही, क्योंकि सामान्य एस्केपिंग हमेशा सही होती है। CDATA ज्यादातर पढ़ने में आसानी के लिए है, जब वैल्यू में मार्कअप जैसा बहुत सारा टेक्स्ट हो। इसे चालू करें, तो 200 अक्षरों से लंबी स्ट्रिंग या एंगल ब्रैकेट और एम्परसेंड वाली स्ट्रिंग CDATA ब्लॉक में जाती हैं। ऐसी वैल्यू के अंदर ]]> हो, तो उसे दो ब्लॉक में बांटा जाता है, ताकि परिणाम सही बना रहे।
क्या कुंजियों का क्रम बना रहता है?
हां। एलिमेंट उसी क्रम में लिखे जाते हैं, जिसमें कुंजियां मूल JSON में हैं, और ऐरे की एंट्री अपने इंडेक्स के क्रम में रहती हैं। एट्रिब्यूट चाइल्ड एलिमेंट से पहले लिखे जाते हैं, क्योंकि XML यही मांगता है, पर आपस में वे भी मूल क्रम में रहते हैं। इसलिए अलग-अलग बार के परिणामों की आपस में तुलना (diff) आसानी से हो जाती है।
क्या मेरी फाइल कहीं अपलोड होती है?
नहीं। सब कुछ आपके ब्राउजर टैब में होता है, और JSON पार्सर और XML सीरियलाइजर पेज का हिस्सा हैं, कहीं चल रही कोई सर्विस नहीं। फाइल पाने वाला कोई सर्वर है ही नहीं, इसलिए टैब बंद करने के बाद कुछ भी सेव, लॉग या जमा नहीं रहता।