मुख्य सामग्री पर जाएं
PulsarKit

XML को JSON में कन्वर्ट करें

XML को JSON में बदलें। एट्रिब्यूट, CDATA और नेमस्पेस आपके चुने तरीके से संभाले जाते हैं, और सिंटैक्स की गड़बड़ी सटीक लाइन के साथ बताई जाती है।

फाइलें यहां छोड़ें

.xml, .rss, .svg, .xhtml, .txt · 300 MB तक

एट्रिब्यूट
और सेटिंग

कैसे JSON में कन्वर्ट करें

  1. 1

    XML फाइल डालें

    एक फाइल डालें या बीस तक। RSS फीड, SVG ड्रॉइंग और XHTML पेज भी XML ही हैं और इन्हें इसी तरह पढ़ा जाता है।

  2. 2

    चुनें कि एट्रिब्यूट और दोहराव कैसे बदलें

    एट्रिब्यूट को प्रीफिक्स दिया जा सकता है, एक key के नीचे रखा जा सकता है या छोड़ा जा सकता है। दोहराए गए टैग हमेशा array बन सकते हैं या सिर्फ तब, जब वे सच में दोहराए गए हों।

  3. 3

    कन्वर्ट करें और JSON डाउनलोड करें

    बटन दबाएं और इंडेंट किया हुआ परिणाम सेव करें। कई फाइलें एक ZIP आर्काइव में वापस मिलती हैं।

एक एलिमेंट या एक सदस्य वाली सूची

XML से JSON की किसी भी मैपिंग में मुश्किल हिस्सा एक सदस्य वाली सूची है। तीन <item> चाइल्ड वाला <order> साफ तौर पर array बनता है, पर एक item वाला वही डॉक्यूमेंट सादे ऑब्जेक्ट जैसा दिखता है। उस पर लूप चलाने वाला कोड पहले ही असली ग्राहक पर टूट जाता है। इसीलिए array का नियम छिपा हुआ अंदाजा नहीं, बल्कि साफ सेटिंग है, और आप हर चाइल्ड को जबरदस्ती array में बदल सकते हैं।

संख्याएं, जो संख्याएं नहीं हैं

स्मार्ट टाइपिंग 42 को संख्या और true को boolean बनाती है। आम तौर पर आपको यही चाहिए, पर कभी-कभी यह मुसीबत बन जाती है। 00123 वाला पार्ट कोड 123 नहीं बनना चाहिए, और बीस अंकों वाला टैक्स पहचान नंबर राउंड होकर साइंटिफिक नोटेशन में नहीं बदलना चाहिए। इसलिए शुरुआत में शून्य वाली वैल्यू और पंद्रह से ज्यादा अंकों वाली स्ट्रिंग, स्ट्रिंग ही रहती हैं, और टाइपिंग बंद करने पर हर वैल्यू ठीक वैसी रहती है जैसी लिखी गई है।

एंटिटी की घोषणाएं मना कर दी जाती हैं

<!ENTITY> घोषणा वाला DOCTYPE पार्सिंग शुरू होने से पहले ही मना कर दिया जाता है। दस नेस्टेड एंटिटी, जिनमें हर एक पिछली को दस बार बुलाती है, फैलकर कई गीगाबाइट टेक्स्ट बन जाती हैं और टैब को अटका देती हैं। यही मशहूर billion laughs हमला है। यहां पांच पहले से तय एंटिटी और न्यूमेरिक कैरेक्टर रेफरेंस के अलावा कुछ नहीं फैलाया जाता, इसलिए इस हमले के पास फैलने को कुछ नहीं बचता।

पार्सिंग यहीं होती है, कहीं और नहीं

पार्सर आपके ब्राउजर में, एक वर्कर थ्रेड में, पेज के साथ आए कोड पर चलता है। आपका XML कभी अपलोड नहीं होता, इसलिए न सर्वर पर कोई कॉपी हटानी है, न किसी कतार में इंतजार करना है, न किसी लॉग की चिंता करनी है। टैब बंद होते ही डॉक्यूमेंट और उससे बना JSON, दोनों खत्म हो जाते हैं।

अक्सर पूछे जाने वाले सवाल

JSON में XML एट्रिब्यूट कहां जाते हैं?

डिफॉल्ट रूप से हर एट्रिब्यूट उसी ऑब्जेक्ट की key बनता है जिसमें एलिमेंट के चाइल्ड हैं, @_ प्रीफिक्स के साथ, ताकि वह उसी नाम के चाइल्ड टैग से न टकराए। इसकी जगह आप सारे एट्रिब्यूट एक @attributes सब-ऑब्जेक्ट में इकट्ठा कर सकते हैं, जिससे एलिमेंट का कंटेंट साफ रहता है, या एट्रिब्यूट पूरी तरह हटा सकते हैं।

एक बार आने वाला दोहराया जाने वाला एलिमेंट array क्यों नहीं बनता?

क्योंकि डॉक्यूमेंट में कहीं नहीं लिखा कि यह सूची है। डिफॉल्ट नियम में टैग तभी array बनता है, जब वह एक ही पैरेंट के नीचे सच में एक से ज्यादा बार आता है, और इससे फाइल हूबहू दिखती है। अगर आपके कोड को तय ढांचा चाहिए, तो array की सेटिंग को always पर करें, ताकि अकेला चाइल्ड भी एक सदस्य वाले array के रूप में आए।

CDATA सेक्शन का क्या होता है?

डिफॉल्ट रूप से CDATA का कंटेंट एलिमेंट के टेक्स्ट में मिला दिया जाता है, क्योंकि CDATA सिर्फ कोट करने का तरीका है, अलग तरह का डेटा नहीं। अगर आपको जानना है कि वैल्यू का कौन-सा हिस्सा इस तरह कोट किया गया था, जैसे बाद में फिर से XML बनाने के लिए, तो separate पर स्विच करें, और वह अपनी #cdata key में आएगा।

क्या नेमस्पेस प्रीफिक्स हटाए जा सकते हैं?

हां। नेमस्पेस हटाने पर dc:title, title बन जाता है, जिससे फीड और डॉक्यूमेंट फॉर्मेट को कोड में इस्तेमाल करना काफी आसान हो जाता है। अगर एक ही फाइल में दो अलग नेमस्पेस एक ही लोकल नाम इस्तेमाल करते हैं, तो इसे बंद रखें, क्योंकि तब सिर्फ प्रीफिक्स ही keys को अलग रखता है।

कस्टम एंटिटी वाली गड़बड़ी क्यों आती है?

क्योंकि DOCTYPE में अपनी एंटिटी घोषित करने वाला डॉक्यूमेंट फैलाया नहीं जाता, मना कर दिया जाता है। एंटिटी फैलाने वाले बमों से बचने का यही भरोसेमंद तरीका है, जो कुछ किलोबाइट को कई गीगाबाइट मेमोरी में बदल सकते हैं। DOCTYPE वाला हिस्सा हटाएं, तो बाकी डॉक्यूमेंट सामान्य रूप से कन्वर्ट हो जाता है।

क्या RSS फीड और SVG फाइलें चलती हैं?

हां, दोनों सामान्य XML हैं। RSS फीड चैनल के मेटाडेटा वाले ऑब्जेक्ट में बदलती है, जिसमें items का array होता है, और इस ढांचे के साथ काम करना आसान है। SVG अपने एलिमेंट ट्री में बदलता है, सारे प्रेजेंटेशन एट्रिब्यूट के साथ, जो ड्रॉइंग को कोड से जांचने या बदलने में काम आता है।

XML में सिंटैक्स की गड़बड़ी हो तो क्या होता है?

आपको लाइन, कॉलम और संबंधित टैग बताया जाता है, जैसे लाइन 214, कॉलम 5 पर क्लोजिंग टैग चाहिए था, न कि सिर्फ पार्सिंग फेल होने का संदेश। दसियों हजार एलिमेंट वाली फाइल में यही फर्क सबसे अहम है, क्योंकि इससे पता चलता है कि कहां देखना है।

क्या मेरी फाइल कहीं अपलोड होती है?

नहीं। डिकोडिंग, जांच और कन्वर्जन, सब आपके ब्राउजर टैब में ही चलते हैं। किसी भी चरण में सर्वर शामिल नहीं होता, इसलिए पेज बंद करने के बाद आपके डॉक्यूमेंट की कोई कॉपी कहीं नहीं रहती।

संबंधित टूल

JSON से XMLJSON से सही XML डॉक्यूमेंट बनाएं: रूट और आइटम टैग के नाम आप तय करते हैं। जो कुंजियां (key) XML में नहीं चलतीं, उन्हें हटाया नहीं जाता, ठीक किया जाता है।XML से ExcelXML फीड या सिस्टम एक्सपोर्ट को स्प्रेडशीट में बदलें। बार-बार आने वाला रिकॉर्ड एलिमेंट टूल खुद ढूंढ लेता है, और एट्रिब्यूट अपने अलग कॉलम बनते हैं।XML से CSVफीड, प्रोडक्ट एक्सपोर्ट या RSS फाइल को स्प्रेडशीट की टेबल में बदलें। बार-बार आने वाला रिकॉर्ड एलिमेंट टूल खुद ढूंढ लेता है, XPath की जरूरत नहीं।XML फॉर्मेटरXML को इंडेंट करें ताकि इंसान उसे पढ़ सके, एक लाइन में समेटें, या सिर्फ जांचें। कमेंट, CDATA और एट्रिब्यूट का क्रम बिना बदले रहते हैं।JSON फॉर्मेटरJSON फाइल को इंडेंट या मिनिफाई करें, या सिर्फ जांचें। गड़बड़ी की लाइन और कॉलम बताए जाते हैं, और चुपचाप रह जाने वाली समस्याएं भी खुलकर गिनाई जाती हैं।JSON से CSVAPI के जवाब या NDJSON एक्सपोर्ट को स्प्रेडशीट टेबल में बदलें। हर रिकॉर्ड का हर फील्ड अपने अलग कॉलम में रहता है।