ToolDeck

แปลง JSON เป็น XML

แปลง JSON เป็นรูปแบบ XML

ลองตัวอย่าง

อินพุต JSON

เอาต์พุต XML

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
XML จะแสดงที่นี่…

การแปลง JSON เป็น XML คืออะไร?

JSON (JavaScript Object Notation) และ XML (eXtensible Markup Language) คือสองรูปแบบการแลกเปลี่ยนข้อมูลหลักในการพัฒนาซอฟต์แวร์ JSON ใช้คู่ key-value และ arrays ในไวยากรณ์ที่กระชับ ขณะที่ XML ครอบข้อมูลด้วยแท็กเปิดและแท็กปิดพร้อม attributes ตามต้องการ การแปลง JSON เป็น XML คือการแปลงโครงสร้างพื้นฐานของ JSON — objects, arrays, strings, numbers, booleans และ null — ให้เป็นเอกสาร XML ที่ถูกต้องพร้อมการซ้อนขององค์ประกอบที่ตรงกัน

XML ยังคงเป็นรูปแบบที่จำเป็นในระบบองค์กรหลายแห่ง, government APIs, SOAP web services และมาตรฐานอุตสาหกรรมอย่าง HL7 (สาธารณสุข), FpML (การเงิน) และ XBRL (การรายงานทางการเงิน) เมื่อแอปพลิเคชันของคุณผลิตข้อมูลเป็น JSON แต่ระบบปลายทางต้องการ XML ตัวแปลง JSON เป็น XML จะจัดการการแปลงนั้นโดยไม่ต้องปรับโครงสร้างด้วยมือ การแปลงเป็นไปตามกฎการแมปที่คาดเดาได้: JSON objects กลายเป็น XML elements, รายการใน array กลายเป็น sibling elements ที่ซ้ำกัน และค่า primitive กลายเป็น text nodes

ไม่มี RFC หรือมาตรฐาน W3C ฉบับเดียวที่กำหนดวิธีแมป JSON ไปยัง XML ไลบรารีต่างๆ ผลิตผลลัพธ์ที่แตกต่างกันสำหรับ input เดียวกัน แนวทางที่พบบ่อยที่สุด (ที่เครื่องมือนี้ใช้) คือครอบทั้งเอกสารด้วย root element ที่กำหนดค่าได้ แปลง JSON key แต่ละตัวเป็น XML child element และแสดง array items เป็น elements ที่ซ้ำกันที่มีชื่อแท็กเดียวกัน การเข้าใจกฎการแมปเหล่านี้มีความสำคัญเมื่อระบบรับต้องการ XML schema (XSD) เฉพาะ

ทำไมต้องใช้ตัวแปลง JSON เป็น XML ออนไลน์?

การเขียน XML ด้วยมือจาก JSON ต้นทางนั้นน่าเบื่อและเกิดข้อผิดพลาดได้ง่าย แท็กที่ไม่ตรงกัน, การลืมแท็กปิด และการซ้อนที่ไม่ถูกต้องทำให้เอกสารไม่ผ่านการตรวจสอบ schema ตัวแปลงจัดการการแปลงโครงสร้างนั้นโดยอัตโนมัติ

แปลงได้ทันทีในเบราว์เซอร์
วาง JSON แล้วได้ XML ที่ถูกต้องในเวลาไม่กี่มิลลิวินาที ไม่ต้องส่งข้อมูลไปเซิร์ฟเวอร์ ไม่ต้องตั้งค่า CLI ไม่ต้องติดตั้ง dependencies การแปลงทำงานด้วย JavaScript ทั้งหมดบนอุปกรณ์ของคุณ
🔒
ข้อมูลสำคัญของคุณยังคงเป็นความลับ
JSON input ของคุณไม่ออกจากแท็บเบราว์เซอร์ การ parse และการสร้าง XML ทั้งหมดทำงาน client-side ทำให้ปลอดภัยในการแปลง payloads ที่มี API keys, tokens หรือข้อมูล production
📋
ไม่ต้องสร้างบัญชีหรือล็อกอิน
เปิดหน้าเว็บ วาง JSON แล้วคัดลอกผลลัพธ์ XML ไม่มีฟอร์มสมัครสมาชิก ไม่ต้องยืนยันอีเมล ไม่มีข้อจำกัดการใช้งานระหว่างคุณกับข้อมูลที่แปลงแล้ว
🌳
รองรับโครงสร้างซ้อนโดยอัตโนมัติ
objects ที่ซ้อนกันลึก, arrays ผสม และค่า null ล้วนแปลงได้อย่างถูกต้อง เครื่องมือนี้รักษาลำดับชั้นทั้งหมดของ JSON input ไว้ใน XML tree ที่ได้

กรณีใช้งานการแปลง JSON เป็น XML

การเชื่อมต่อ SOAP Web Service
REST API ของคุณส่งคืนข้อมูลเป็น JSON แต่ SOAP endpoint ของพาร์ตเนอร์ต้องการ request body เป็น XML แปลง JSON payload เป็น XML ก่อนนำไปใส่ใน SOAP envelope
การแลกเปลี่ยนข้อมูลองค์กร
ระบบ ERP และ CRM รุ่นเก่ามักรับเฉพาะการนำเข้าแบบ XML แปลง JSON exports จากเครื่องมือสมัยใหม่ให้เป็น XML feeds ที่ตรงกับ schema ที่คาดหวัง
การกำหนดค่า CI/CD Pipeline
build tools บางตัว (Maven, Ant, MSBuild) ใช้ configuration files แบบ XML สร้าง XML config fragments จาก JSON parameter files ระหว่างการ build อัตโนมัติ
การเตรียม QA Test Data
สร้าง XML test fixtures จาก JSON datasets ผลิตเอกสาร XML ที่ถูกต้องอย่างรวดเร็วสำหรับทดสอบ XML parsers, XSLT transformations หรือ XPath queries
การเชื่อมรูปแบบใน Data Pipeline
ETL pipelines ที่รับข้อมูลแบบ XML สามารถรับข้อมูลจาก APIs ที่ผลิต JSON ได้ แปลงผลลัพธ์ JSON กลางเป็น XML ก่อนโหลดเข้าสู่ขั้นตอนการประมวลผลที่ใช้ XML
เรียนรู้โครงสร้าง XML
นักศึกษาที่ศึกษา XML สามารถวาง JSON structures ที่คุ้นเคยและดูการแสดงผล XML ที่เทียบเท่าได้ ซึ่งทำให้การซ้อนของแท็ก, ลำดับชั้นขององค์ประกอบ และโครงสร้างเอกสารเป็นรูปธรรมขึ้น

กฎการแมป JSON เป็น XML

เนื่องจากไม่มีมาตรฐานสากลที่กำกับการแปลง JSON เป็น XML เครื่องมือต่างๆ จึงผลิตผลลัพธ์ที่แตกต่างกัน ตารางด้านล่างแสดงแนวทางการแมปที่เครื่องมือนี้และไลบรารียอดนิยมใช้ (js2xmlparser, xmlbuilder, fast-xml-parser) แนวทาง repeated-sibling สำหรับ arrays กลายเป็นที่นิยมเพราะสะท้อนวิธีที่ XML schemas จำลอง collections อย่างเป็นธรรมชาติ — แต่ละรายการเป็น element ชั้นหนึ่งแทนที่จะเป็น child ที่ครอบอยู่ — และทำงานร่วมกับ XPath queries และ XSLT transforms ได้อย่างลงตัว

JSON TypeJSON ExampleXML 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>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

ตัวอย่างโค้ด

ด้านล่างนี้คือโค้ดตัวอย่างที่รันได้สำหรับการแปลง JSON เป็น XML ในสามสภาพแวดล้อม แต่ละตัวอย่างผลิต XML ที่ถูกต้องจาก JSON object ตัวอย่าง

JavaScript (Node.js)
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>
Python
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>
Go
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>
	// →   ...
}

คำถามที่พบบ่อย

การแปลง JSON เป็น XML สูญเสียข้อมูลหรือไม่?
ในเชิงโครงสร้าง ไม่สูญเสีย — ค่า JSON ทุกอย่างแมปไปยัง XML element หรือ text node อย่างไรก็ตาม XML ไม่ได้แยกแยะระหว่าง numbers, booleans และ strings โดยธรรมชาติเหมือนที่ JSON ทำ ค่า 42 ใน JSON กลายเป็นเนื้อหา text "42" ใน XML หากระบบรับใช้การประกาศประเภทของ XML Schema (XSD) ก็สามารถกู้คืนประเภทดั้งเดิมระหว่างการ parse ได้ หากไม่มี schema ข้อมูลประเภทนั้นจะสูญหายไปในเอกสารที่แปลงแล้ว
JSON arrays ถูกแปลงเป็น XML อย่างไร?
แต่ละรายการใน array กลายเป็น sibling XML element ที่มีชื่อแท็กเดียวกัน ตัวอย่างเช่น JSON array "colors": ["red", "blue"] ผลิตสอง elements: &lt;colors&gt;red&lt;/colors&gt; และ &lt;colors&gt;blue&lt;/colors&gt; ตัวแปลงบางตัวครอบ arrays ด้วย parent element (เช่น &lt;colorsList&gt;) แต่แนวทาง repeated-sibling พบบ่อยกว่าและตรงกับแนวทางที่ JAXB, Jackson และ fast-xml-parser ใช้
ค่า null ถูกจัดการอย่างไรในการแปลง?
JSON null มักแปลงเป็น XML element ว่างเปล่า — ตัวอย่างเช่น "middle_name": null กลายเป็น &lt;middle_name/&gt; ไลบรารีบางตัวเพิ่ม attribute xsi:nil="true" เพื่อระบุ null อย่างชัดเจน ซึ่งมีประโยชน์เมื่อระบบปลายทาง validate เทียบกับ XSD schema เครื่องมือนี้ส่งออก self-closing empty element เป็นค่าเริ่มต้น
แปลง XML กลับเป็น JSON ได้ไหม?
ได้ แต่การแปลงกลับไม่ได้ symmetric เสมอไป คุณสมบัติของ XML อย่าง attributes, processing instructions, comments, mixed content และ namespaces ไม่มีค่าเทียบเท่าใน JSON โดยตรง การแปลง XML เป็น JSON และกลับเป็น XML อาจผลิตเอกสารที่มีโครงสร้างต่างออกไป หากต้องการแปลง XML เป็น JSON ให้ใช้ตัวแปลง XML เป็น JSON โดยเฉพาะที่รักษา attributes และ namespaces ไว้
จะจัดการ JSON keys ที่ไม่ใช่ชื่อ XML element ที่ถูกต้องอย่างไร?
ชื่อ XML element ไม่สามารถเริ่มด้วยตัวเลข, มีช่องว่าง หรือมีอักขระพิเศษส่วนใหญ่ได้ หาก JSON ของคุณมี key อย่าง "2024-data" หรือ "first name" ตัวแปลงต้องทำความสะอาดชื่อนั้น — โดยทั่วไปโดยการเติม underscore นำหน้าหรือแทนที่อักขระที่ไม่ถูกต้องด้วย underscores ตรวจสอบผลลัพธ์จากตัวแปลงและปรับชื่อ key ใน JSON ต้นทางหากผลลัพธ์ XML ต้องผ่านการตรวจสอบ XSD
ขนาด JSON สูงสุดที่เครื่องมือนี้รองรับคือเท่าไร?
ตัวแปลงทำงานใน JavaScript engine ของเบราว์เซอร์ ดังนั้นขีดจำกัดจริงขึ้นอยู่กับหน่วยความจำที่มี เบราว์เซอร์สมัยใหม่ส่วนใหญ่รองรับเอกสาร JSON ขนาดถึง 50-100 MB โดยไม่มีปัญหา สำหรับไฟล์ที่ใหญ่กว่านั้น ให้ใช้ตัวแปลงแบบ streaming อย่าง xmltodict ของ Python หรือ command-line tool ที่ประมวลผลข้อมูลแบบ incremental แทนที่จะโหลดทั้งหมดลงหน่วยความจำ
ผลลัพธ์ XML เป็น well-formed หรือ valid?
ผลลัพธ์เป็น XML ที่ well-formed เสมอ — แท็กซ้อนกันอย่างถูกต้อง, อักขระพิเศษถูก escape และเอกสารมี root element เดียว ความ valid ขึ้นอยู่กับ target schema (XSD หรือ DTD) Well-formedness คือการรับประกันโครงสร้าง ความ valid ต้องการให้ชื่อ element, ลำดับการซ้อน และประเภทเนื้อหาตรงกับ schema definition เฉพาะ