मुफ्त XML से JSON कन्वर्टर
XML को तुरंत JSON में बदलें। एट्रिब्यूट, नेस्टेड एलिमेंट्स और टेक्स्ट नोड्स को संभालता है। पूरी तरह आपके ब्राउज़र में चलता है।
XML क्या है?
XML (एक्सटेंसिबल मार्कअप लैंग्वेज) डेटा स्टोर और ट्रांसपोर्ट करने का एक फ़ॉर्मैट है। यह डेटा संरचना का वर्णन करने के लिए कस्टम टैग का उपयोग करता है, जिससे यह मनुष्य-पठनीय और व्यापक रूप से समर्थित होता है। JSON के विपरीत, XML एलिमेंट्स पर एट्रिब्यूट शामिल कर सकता है।
XML को JSON में क्यों बदलें?
- छोटा फ़ाइल आकार · JSON, XML से अधिक कॉम्पैक्ट होता है।
- वेब API · अधिकांश आधुनिक वेब सेवाएं XML के बजाय JSON का उपयोग करती हैं।
- आसान पार्सिंग · JSON सीधे JavaScript ऑब्जेक्ट्स पर मैप होता है।
- लेगेसी सिस्टम एकीकरण · पुराने XML डेटा को आधुनिक JSON फ़ॉर्मैट में बदलें।
अक्सर पूछे जाने वाले प्रश्न
XML एट्रिब्यूट्स को कैसे संभाला जाता है?
XML एट्रिब्यूट्स को @ उपसर्ग के साथ JSON प्रॉपर्टीज़ में बदला जाता है (जैसे @id, @href)। यह JSON संरचना में एट्रिब्यूट जानकारी को सुरक्षित रखता है।
नेमस्पेस का क्या?
नेमस्पेस आउटपुट में सुरक्षित रखे जाते हैं। एलिमेंट नामों में उपसर्ग शामिल होते हैं (जैसे "ns:element")।
क्या मैं JSON को वापस XML में बदल सकता हूं?
यह टूल XML को JSON में बदलता है। विपरीत के लिए, आप हमारे JSON से XML कन्वर्टर का उपयोग कर सकते हैं।
दो Formats, तीन Decades Apart
XML 1.0 10 February 1998 को W3C Recommendation बना। Original editors Tim Bray (Textuality / Netscape), Jean Paoli (Microsoft) और C. M. Sperberg-McQueen (University of Illinois at Chicago) थे; Working Group Sun Microsystems के Jon Bosak द्वारा chaired था। XML की lineage SGML (ISO 8879:1986) तक जाती है, document-markup standard जो खुद 1970s में IBM के GML से बढ़ा था। SGML powerful था लेकिन daunting; XML का design brief था «design a 'lite' version of SGML», optional features को ऐसे profile तक trim करना जिसे कुछ thousand lines of code में implement किया जा सके, Unicode, namespaces और attribute-rich documents preserve करते हुए।
JSON (JavaScript Object Notation) discover किया गया था, design नहीं। Douglas Crockford और Chip Morningstar ने April 2001 में State Software पर पहला JSON message भेजा, format को JavaScript के object-literal syntax से derive करते हुए। Crockford ने 2002 में json.org register किया और एक one-page spec डाली। Format पहली बार July 2006 में RFC 4627 के रूप में formalised हुआ, 2014 में RFC 7159 के रूप में re-issued हुआ, और December 2017 में RFC 8259 / STD 90 के रूप में stabilised हुआ, उसी year ECMA-International ने ECMA-404 publish किया। JSON का design intent (Crockford के retrospective के per): minimal, language-independent, generate और parse करने में easy, कोई version number नहीं («there is no version number»), और deliberately कोई comments नहीं («I removed comments because I saw people were using them to hold parsing directives»)।
JSON ने late 2000s में web APIs पर takeover किया जब REST ने SOAP की जगह ली और XMLHttpRequest JSON-over-fetch को रास्ता दिया। 2015 तक JSON लगभग हर public API का default response format था; XML long-tail enterprise SOA, document formats (Office Open XML, OpenDocument), और standards-bound niches में survive किया।
XML और JSON कहां Differ करते हैं
| XML | JSON | |
|---|---|---|
| Attributes | प्रथम श्रेणी (<item id="5"/>) | No attributes, सब कुछ key/value pair है |
| Namespaces | Native (xmlns:prefix="uri") | Flat names; prefix collisions app की problem हैं |
| Comments | <!-- … --> | Spec के per कुछ नहीं |
| मिश्रित सामग्री | Native (<p>text <b>and</b> markup</p>) | Awkward, arrays या stringification की ज़रूरत |
| Schema | DTD, XSD 1.0 (2001) / 1.1 (2012), RELAX NG, Schematron | JSON Schema (सामुदायिक spec, ड्राफ्ट 2020-12) |
| Order | Element order spec के per significant है | Object key order guaranteed नहीं (अधिकांश parsers practice में insertion order preserve करते हैं); arrays ordered हैं |
| Numbers | Schema द्वारा typed होने तक Strings | IEEE 754 double; spec level पर कोई integer/float distinction नहीं |
| Verbosity | High (हर value tags में wrapped होती है | Low) केवल punctuation |
XML→JSON Fundamentally Lossy क्यों है
XML से JSON का कोई W3C-blessed canonical mapping नहीं है। हर converter को ऐसे questions के answers invent करने होते हैं जो XML express करने देता है लेकिन JSON के पास native vocabulary नहीं है। Recurring decisions:
- Attributes vs child elements: XML आपको same data दोनों ways express करने देता है। JSON में केवल एक notion है (object पर keys), इसलिए converter को marker invent करना होता है। Common conventions: BadgerFish attributes के लिए
@और text के लिए$use करता है; Parker attributes entirely drop करता है (lossy लेकिन simple); JsonML elements को type tags के साथ arrays के रूप में represent करता है (order और structure preserve करता है); GData / Newtonsoft / xml2js एक@attributessub-object plus एक#textkey use करते हैं जब ज़रूरत हो। यह converter GData-style convention follow करता है:@attributesके अंतर्गत attributes,#textके अंतर्गत mixed-content text, repeated children arrays बन जाते हैं। - Repeated child elements: यदि converter blindly हर child के लिए एक key create करे, तो second child first को overwrite कर देता है। Standard fix: repetition detect करें और array emit करें। लेकिन इसका मतलब है JSON shape data पर depend करता है, एक
<book>string produce करता है, दो strings का array। कुछ consumers एक item के लिए भी array form चाहते हैं; कुछ converters specific element names के लिए «always-array» toggle expose करते हैं। - Mixed content:
<p>Hello <b>world</b>!</p>text और elements को significant order के साथ intermix करता है। JSON natively उस interleaving को express नहीं कर सकता mixed types के array या sentinel#textkey के बिना। कई converters elements के बीच prose drop कर देते हैं; अधिक conservative ones इसे multiple text-node entries में split करते हैं। - Namespaces:
<soap:Envelope xmlns:soap="…">में prefix और binding URI दोनों हैं। अधिकांश converters prefix को JSON key (soap:Envelope) के part के रूप में preserve करते हैं और binding drop कर देते हैं, जो fine है जब तक consumer को namespace resolve नहीं करना। - Comments और processing instructions: usually silently dropped, क्योंकि JSON में कोई comment syntax नहीं है।
- CDATA sections: plain strings पर flatten होती हैं;
<![CDATA[…]]>wrapper lost हो जाता है। - Whitespace: XML में significant whitespace के लिए
xml:space="preserve"है; JSON में कोई equivalent नहीं। अधिकांश converters elements के बीच whitespace-only text nodes trim करते हैं।
इसे कब Use करें
- Legacy SOAP services consume करना modern JS frontend से। SOAP responses XML हैं; boundary पर एक बार convert करने पर app का बाकी हिस्सा JSON में काम कर सकता है।
- RSS / Atom feed processing: दोनों XML formats हैं; modern news readers और aggregators usually JSON चाहते हैं।
- XML sitemaps (
sitemap.xml), JSON में convert करने से programmatically inspect और process करना easier होता है। - OpenStreetMap OSM data: XML में published, client-side mapping के लिए frequently JSON की ज़रूरत।
- Google Earth KML / GPX files: XML में आने वाले geographic data formats।
- Office Open XML internals:
.docx,.xlsxऔर.pptxzipped XML files हैं; यदि आपने एक extract किया है और उसकी structure को JSON के रूप में inspect करना चाहते हैं, यह conversion step है। - SVG manipulation: SVG XML है। JSON में convert करने से JavaScript में tree walk और mutate करना re-serialise करने से पहले easier होता है।
- Maven POM, Ant build files, Spring config, Android resources, Apple plists, XBRL financial data, HL7 medical records, MusicXML, NMX legal documents: long-tail XML formats जिन्हें अक्सर downstream tooling के लिए JSON की ज़रूरत होती है।
Modern Alternatives
- Native JSON APIs। यदि upstream service JSON variant offer करती है, उसे लें। SOAP services typically नहीं करतीं लेकिन अधिकांश modern equivalents करती हैं।
- GraphQL। एक query language जो client को typed schema से exactly वह JSON shape request करने देती है जो उसे चाहिए।
- Protocol Buffers (Protobuf), MessagePack, CBOR, Avro। Schemas के साथ binary serialisation formats जो XML या JSON से बहुत smaller wire sizes हैं। Microservice meshes के अंदर common; browser boundary पर rarely use होते हैं क्योंकि उन्हें explicit decoding libraries चाहिए।
- XML में रहें। यदि data genuinely document-oriented है (mixed content, deep typed structure, schema validation जो matter करती है), XML better fit है। JSON की strength API-shaped data है; document fidelity उसकी specialty नहीं।
More Questions
Same XML Different JSON Shape Different Tools पर क्यों Produce करता है?
क्योंकि कोई canonical XML→JSON mapping नहीं है। हर converter एक convention pick करता है (BadgerFish, Parker, JsonML, GData-style) और resulting JSON shapes differ करते हैं: attributes कैसे marked होते हैं, mixed content कैसे preserved होता है, और repeated children कैसे arrayed होते हैं। Different converters के माध्यम से XML round-trip करने पर different JSON produce होता है; JSON को different converters के माध्यम से XML में round-trip करने पर attribute placement और element ordering भी change हो सकती है। Interoperability के लिए, convention document करें जो आप use कर रहे हैं और उस पर stick करें।
CDATA, Comments और Processing Instructions के बारे में क्या?
CDATA sections (<![CDATA[…]]>) plain string content पर flatten होती हैं, wrapper चला जाता है, लेकिन अंदर का text verbatim preserved रहता है। XML comments (<!-- … -->) और processing instructions (<?xml-stylesheet …?>) drop होते हैं, क्योंकि JSON में किसी के लिए भी syntax नहीं है। यदि आपको comments preserve करने वाली round-trip fidelity चाहिए, XML-only round trip सही approach है।
क्या मेरा XML Schema (XSD) Conversion Survive करेगा?
नहीं। XSD XML structure और types describe करता है; JSON Schema JSON के लिए analogous (separate) standard है। कुछ advanced tooling XSD को JSON Schema में translate कर सकता है, लेकिन यह lossy operation है: XSD में features हैं (mixed content, substitution groups, derived types) जिनका कोई clean JSON Schema equivalent नहीं है। Document validation के लिए जो matter करती है, original XML के विरुद्ध XSD run करें, JSON conversion के विरुद्ध नहीं।
JSON ने Web APIs के लिए क्यों जीत हासिल की?
कुछ reasons। JSON directly JavaScript objects पर map होता है, इसलिए browser-side parsing एक JSON.parse() call है। Format बहुत smaller है, कोई closing tags नहीं, कोई namespace declarations नहीं, कोई schema baggage नहीं। REST ने late 2000s में अधिकांश public APIs के लिए SOAP replace किया, और JSON REST के लिए natural payload था। XML की strengths (strict schemas, namespaces, mixed content) documents और legacy enterprise systems के लिए matter करती हैं लेकिन «give me the user object.» के लिए rarely। Web ने simpler case के लिए optimise किया।
क्या कुछ Server को Send होता है?
नहीं। XML browser के native DOMParser द्वारा parsed होता है, फिर JSON output build करने के लिए JavaScript में recursively walked होता है। Pasted XML page नहीं छोड़ता। Tool load होने के बाद offline काम करता है, जो matter करता है जब source XML में internal API endpoints, customer data, या proprietary schemas हों जो आप कहीं upload नहीं करना चाहते।