แปลง JSON เป็น XML
วางเอกสาร JSON แล้วรับ XML ที่เทียบเท่ากลับมา พร้อมชื่อองค์ประกอบรากที่คุณเลือก ใช้แนวทางที่สอดคล้องกันสำหรับอาร์เรย์ (ไม่ว่าจะเป็นองค์ประกอบที่ซ้ำกันหรือโครงสร้างห่อหุ้ม) มีการประกาศ XML แบบเลือกได้ และการจัดย่อหน้าอย่างสวยงาม มีประโยชน์อย่างยิ่งเมื่อระบบเดิมต้องใช้ XML ในขณะที่ข้อมูลต้นทางของคุณยังอยู่ในรูปแบบ JSON
วิธีแปลง JSON เป็น XML
-
1
วางข้อมูล JSON
วัตถุหรืออาร์เรย์ในระดับสูงสุด คุณจะต้องกำหนดชื่อให้กับองค์ประกอบราก
-
2
ให้ชื่อราก
XML ต้องมีองค์ประกอบรากเพียงหนึ่งรายการ โดยค่าเริ่มต้นคือ `<root>` ควรกำหนดชื่อให้มีความหมาย เช่น `<users>` หรือ `<response>`
-
3
เลือกกลยุทธ์สำหรับอาร์เรย์
“องค์ประกอบที่ซ้ำกัน” (รายการแต่ละรายการในอาร์เรย์จะกลายเป็น `<item>` ซึ่งเป็นองค์ประกอบแบบพี่น้อง) หรือ “ตัวหุ้ม” (อาร์เรย์จะถูกรวมอยู่ภายในองค์ประกอบตัวหุ้มที่มีชื่อเฉพาะ)
-
4
คัดลอกไฟล์ XML
การประกาศ XML แบบเลือกใช้ การแทรกช่องว่างตามมาตรฐาน และค่าที่ถูกป้องกันการแปลงผิดสำหรับ `<`, `>`, `&` รวมถึงเครื่องหมายอ้างอิง
ตัวอย่าง: องค์ประกอบที่ซ้ำกัน
ข้อมูลที่ป้อนเข้ามา:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
ผลลัพธ์:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
ตัวอย่าง: โครงสร้างห่อหุ้มอาร์เรย์
ข้อมูลเดิมโดยใช้กลยุทธ์ “ห่อหุ้มอาร์เรย์ใน <item>”:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
การจับคู่ประเภทข้อมูล
| JSON | XML |
|---|---|
| สตริง | เนื้อหาข้อความ ที่ถูกแปลงเป็นเอนทิตี (entity-escaped) |
| จำนวนเต็ม / ทศนิยม | เนื้อหาข้อความ (ไม่มีการระบุประเภทของ XML) |
| ค่าบูลีน | true / false ในรูปแบบข้อความ |
| null | องค์ประกอบว่าง (<foo/>) หรือถูกละไว้ |
| อาร์เรย์ | องค์ประกอบที่ซ้ำกัน หรือโครงสร้างห่อหุ้มพร้อมรายการ |
| ออบเจกต์ | องค์ประกอบที่ซ้อนกันซึ่งมีองค์ประกอบย่อย |
ลักษณะเฉพาะเทียบกับองค์ประกอบ
XML แยกแยะระหว่างแอตทริบิวต์ (<user id="1">) กับองค์ประกอบย่อย (<user><id>1</id></user>) โดยโดยค่าเริ่มต้นโปรแกรมแปลงจะจัดการกับองค์ประกอบเหล่านี้อย่างตรงไปตรงมา และไม่มีการสูญเสียข้อมูลในการแปลงขึ้น-ลง หาก XML ที่ใช้งานต่อไปในกระบวนการต้องการแอตทริบิวต์ ควรใช้รูปแบบการเพิ่มคำนำหน้าตามคีย์ (key prefix convention):
คีย์ JSON @id จะถูกแปลงเป็นแอตทริบิวต์ XML ชื่อ id="..." ในองค์ประกอบแม่
- กุญแจ JSON
#textจะกลายเป็นเนื้อหาข้อความขององค์ประกอบแม่
ข้อกำหนดเหล่านี้มาจากมาตรฐานการแปลงข้อมูล JSON เป็น XML สองมาตรฐานที่ใช้กันอย่างแพร่หลายที่สุด ได้แก่ BadgerFish และ Parker
กฎการเอสเคป
<-><>->>&->&"->"(ในค่าแอตทริบิวต์)'→'(เลือกได้) ไบต์ในรูปแบบ UTF-8 จะถูกคงไว้ตามที่กำหนดไว้ใน XML Prolog
ข้อผิดพลาดที่พบบ่อย
- ชุดข้อมูล JSON ในระดับราก (root-level JSON array): XML ต้องมีองค์ประกอบรากเพียงหนึ่งรายการเท่านั้น โปรแกรมแปลงจะห่อชุดข้อมูลดังกล่าวไว้ในรูปแบบ
<root>(หรือชื่ออื่นใดก็ได้ที่คุณกำหนด) - คีย์แบบตัวเลข: JSON
{"1": "a"}เป็นคีย์ที่ถูกต้องตามกฎ; ชื่อองค์ประกอบใน XML ไม่สามารถเริ่มต้นด้วยตัวเลขได้ โปรแกรมแปลงจะเพิ่มตัวเลขลงในส่วนนำหน้าของคีย์โดยใช้เครื่องหมาย “_” (เช่น_1) หรือให้ผู้ใช้สามารถกำหนดการแปลงเฉพาะได้ - อาร์เรย์ผสม:
[1, "two", { "x": true }]ไม่มีการแมปที่ชัดเจน โดยทั่วไปหมายความว่าข้อมูลในรูปแบบ JSON จำเป็นต้องผ่านกระบวนการปรับรูปแบบให้เหมาะสมก่อนการแปลง - เอกสารขนาดใหญ่: XML มีลักษณะข้อมูลที่ละเอียดซับซ้อน, JSON ขนาด 10 เมกะไบต์อาจกลายเป็น XML ขนาด 20–30 เมกะไบต์ได้ ควรพิจารณาการแปลงข้อมูลแบบสตรีมสำหรับไฟล์ขนาดใหญ่มาก
คำถามที่พบบ่อย
ตามข้อกำหนด XML จำเป็นต้องมีรากเดียว หาก JSON ของคุณเป็นอาร์เรย์ หรือมีคีย์ระดับสูงหลายรายการ เครื่องแปลงจะห่อข้อมูลทั้งหมดไว้ในองค์ประกอบรากที่คุณสามารถตั้งชื่อได้ (โดยค่าเริ่มต้นคือ <root>)
ใช่ ให้ใช้รูปแบบการเริ่มต้นด้วย prefix @ ในคีย์ JSON ของคุณ (เช่น "@id": 1) โดยคีย์เหล่านี้จะกลายเป็นแอตทริบิวต์ ส่วนคีย์อื่น ๆ จะยังคงเป็นองค์ประกอบย่อย ซึ่งสอดคล้องกับการแมปของ BadgerFish
มีสองกลยุทธ์ให้เลือก ได้แก่ การใช้องค์ประกอบพี่น้องที่ซ้ำกัน (โดยแต่ละรายการจะใช้คีย์ของพาเรนต์เป็นแท็ก) หรือการใช้โครงสร้างห่อหุ้มที่บรรจุองค์ประกอบ <item> ไว้ภายใน โปรดเลือกแบบที่สอดคล้องกับสคีมา XML ที่คุณต้องการใช้งาน
ไม่ ตัวแปลงจะสร้างคำประกาศ XML (<?xml version="1.0"?>) แต่จะไม่สร้าง DOCTYPE หาก XML นั้นต้องการการอ้างอิง DTD หรือ XSD ให้เพิ่มข้อมูลดังกล่าวเข้าไปด้วยตนเองหลังจากการแปลง
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
เครื่องมือสร้าง EditorConfig
สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข
เครื่องมือนี้มีให้บริการในภาษาอื่น
- JSON till XML [SV]
- JSON إلى XML [AR]
- JSON naar XML [NL]
- Chuyển đổi từ JSON sang XML [VI]
- JSON a XML [ES]
- JSONからXMLへ [JA]
- JSON ke XML [ID]
- JSON vers XML [FR]
- JSON zu XML [DE]
- JSON do XML [PL]
- JSON para XML [PT]
- JSON에서 XML로 [KO]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]
- JSON to XML [EN]
- JSON in XML [IT]