JSON to XML
JSON को XML फ़ॉर्मेट में बदलें
JSON इनपुट
XML आउटपुट
JSON से XML रूपांतरण क्या है?
JSON (JavaScript Object Notation) और XML (eXtensible Markup Language) सॉफ़्टवेयर विकास में डेटा आदान-प्रदान के दो प्रमुख फ़ॉर्मेट हैं। JSON key-value pairs और ऐरे का उपयोग एक संक्षिप्त वाक्यविन्यास में करता है, जबकि XML डेटा को प्रारंभिक और समापन टैग में वैकल्पिक विशेषताओं के साथ लपेटता है। JSON को XML में बदलने का अर्थ है JSON की संरचनात्मक मूल इकाइयों — ऑब्जेक्ट, ऐरे, स्ट्रिंग, संख्या, बूलियन और null — को उचित तत्व नेस्टिंग वाले एक well-formed XML दस्तावेज़ में अनुवाद करना।
XML अनेक उद्यम प्रणालियों, सरकारी API, SOAP वेब सेवाओं और उद्योग मानकों जैसे HL7 (स्वास्थ्य सेवा), FpML (वित्त) और XBRL (वित्तीय रिपोर्टिंग) में आवश्यक फ़ॉर्मेट बना हुआ है। जब आपका अनुप्रयोग JSON उत्पन्न करता है परंतु उपभोक्ता प्रणाली XML की अपेक्षा रखती है, तो JSON से XML कनवर्टर मैन्युअल पुनर्संरचना के बिना यह अनुवाद करता है। रूपांतरण पूर्वानुमेय मानचित्रण नियमों का पालन करता है: JSON ऑब्जेक्ट XML तत्व बनते हैं, ऐरे आइटम बार-बार आने वाले sibling तत्व बनते हैं, और आदिम मान पाठ नोड बनते हैं।
कोई एकल RFC या W3C मानक नहीं है जो यह परिभाषित करे कि JSON किस प्रकार XML में मानचित्रित होता है। भिन्न-भिन्न लाइब्रेरी एक ही इनपुट के लिए भिन्न आउटपुट उत्पन्न करती हैं। सबसे सामान्य परंपरा (जो इस टूल द्वारा अपनाई जाती है) पूरे दस्तावेज़ को एक कॉन्फ़िगर करने योग्य रूट तत्व में लपेटती है, प्रत्येक JSON कुंजी को एक XML चाइल्ड तत्व में बदलती है और ऐरे आइटम को समान टैग नाम वाले बार-बार आने वाले तत्वों के रूप में दर्शाती है। ये मानचित्रण नियम तब महत्वपूर्ण होते हैं जब प्राप्तकर्ता प्रणाली किसी विशिष्ट XML स्कीमा (XSD) को लागू करती है।
ऑनलाइन JSON से XML कनवर्टर का उपयोग क्यों करें?
JSON स्रोत से XML हाथ से लिखना थकाऊ और त्रुटिपूर्ण होता है। असंगत टैग, भूले हुए समापन तत्व और गलत नेस्टिंग से ऐसे दस्तावेज़ बनते हैं जो स्कीमा सत्यापन में विफल हो जाते हैं। कनवर्टर संरचनात्मक अनुवाद स्वचालित रूप से करता है।
JSON से XML उपयोग के मामले
JSON से XML मानचित्रण नियम
चूँकि JSON-से-XML रूपांतरण को कोई सार्वभौमिक मानक नहीं नियंत्रित करता, इसलिए भिन्न-भिन्न टूल भिन्न आउटपुट उत्पन्न करते हैं। नीचे दी गई तालिका इस कनवर्टर और अधिकांश लोकप्रिय लाइब्रेरी (js2xmlparser, xmlbuilder, fast-xml-parser) द्वारा उपयोग की जाने वाली मानचित्रण परंपराएँ दर्शाती है। ऐरे के लिए बार-बार आने वाले sibling तत्वों की परंपरा प्रमुख बन गई क्योंकि यह उस तरीके को दर्शाती है जिसमें XML स्कीमा स्वाभाविक रूप से संग्रह का मॉडल बनाती हैं — प्रत्येक आइटम एक प्रथम-श्रेणी तत्व होता है न कि लिपटा हुआ चाइल्ड — और यह XPath क्वेरी तथा XSLT रूपांतरणों के साथ सहजता से एकीकृत होता है।
| JSON Type | JSON Example | XML Output |
|---|---|---|
| Object | {"name": "Alice"} | <name>Alice</name> |
| Nested object | {"user": {"age": 30}} | <user><age>30</age></user> |
| Array | {"colors": ["red", "blue"]} | <colors>red</colors><colors>blue</colors> |
| String | "hello" | <root>hello</root> |
| Number | 42 | <root>42</root> |
| Boolean | true | <root>true</root> |
| Null | null | <root/> |
| Empty object | {} | <root/> |
| Empty array | [] | (no child elements) |
कोड उदाहरण
नीचे तीन environments में JSON को XML में बदलने के लिए चलाने योग्य कोड अंश दिए गए हैं। प्रत्येक उदाहरण एक नमूना JSON ऑब्जेक्ट से well-formed XML उत्पन्न करता है।
import { create } from 'xmlbuilder2';
const json = {
order: {
id: 1024,
items: [
{ sku: "A1", qty: 2 },
{ sku: "B3", qty: 1 }
],
shipped: false
}
};
const xml = create({ version: '1.0' })
.ele(json)
.end({ prettyPrint: true });
console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// → <id>1024</id>
// → <items>
// → <sku>A1</sku>
// → <qty>2</qty>
// → </items>
// → <items>
// → <sku>B3</sku>
// → <qty>1</qty>
// → </items>
// → <shipped>false</shipped>
// → </order>import json
import xmltodict
data = {
"order": {
"id": 1024,
"items": [
{"sku": "A1", "qty": 2},
{"sku": "B3", "qty": 1}
],
"shipped": False
}
}
# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# → <id>1024</id>
# → <items>
# → <sku>A1</sku>
# → <qty>2</qty>
# → </items>
# → <items>
# → <sku>B3</sku>
# → <qty>1</qty>
# → </items>
# → <shipped>false</shipped>
# → </order>package main
import (
"encoding/json"
"encoding/xml"
"fmt"
)
type Item struct {
SKU string `json:"sku" xml:"sku"`
Qty int `json:"qty" xml:"qty"`
}
type Order struct {
XMLName xml.Name `xml:"order"`
ID int `json:"id" xml:"id"`
Items []Item `json:"items" xml:"items"`
Shipped bool `json:"shipped" xml:"shipped"`
}
func main() {
raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`
var order Order
json.Unmarshal([]byte(raw), &order)
out, _ := xml.MarshalIndent(order, "", " ")
fmt.Println(xml.Header + string(out))
// → <?xml version="1.0" encoding="UTF-8"?>
// → <order>
// → <id>1024</id>
// → <items>
// → <sku>A1</sku>
// → <qty>2</qty>
// → </items>
// → ...
}