แปลง JSON เป็น XML

วางเอกสาร JSON แล้วรับ XML ที่เทียบเท่ากลับมา พร้อมชื่อองค์ประกอบรากที่คุณเลือก ใช้แนวทางที่สอดคล้องกันสำหรับอาร์เรย์ (ไม่ว่าจะเป็นองค์ประกอบที่ซ้ำกันหรือโครงสร้างห่อหุ้ม) มีการประกาศ XML แบบเลือกได้ และการจัดย่อหน้าอย่างสวยงาม มีประโยชน์อย่างยิ่งเมื่อระบบเดิมต้องใช้ XML ในขณะที่ข้อมูลต้นทางของคุณยังอยู่ในรูปแบบ JSON

วิธีแปลง JSON เป็น XML

  1. 1

    วางข้อมูล JSON

    วัตถุหรืออาร์เรย์ในระดับสูงสุด คุณจะต้องกำหนดชื่อให้กับองค์ประกอบราก

  2. 2

    ให้ชื่อราก

    XML ต้องมีองค์ประกอบรากเพียงหนึ่งรายการ โดยค่าเริ่มต้นคือ `<root>` ควรกำหนดชื่อให้มีความหมาย เช่น `<users>` หรือ `<response>`

  3. 3

    เลือกกลยุทธ์สำหรับอาร์เรย์

    “องค์ประกอบที่ซ้ำกัน” (รายการแต่ละรายการในอาร์เรย์จะกลายเป็น `<item>` ซึ่งเป็นองค์ประกอบแบบพี่น้อง) หรือ “ตัวหุ้ม” (อาร์เรย์จะถูกรวมอยู่ภายในองค์ประกอบตัวหุ้มที่มีชื่อเฉพาะ)

  4. 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

กฎการเอสเคป

  • < -> &lt;
  • > -> &gt;
  • & -> &amp;
  • " -> &quot; (ในค่าแอตทริบิวต์)
  • '&apos; (เลือกได้) ไบต์ในรูปแบบ 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 และโปรแกรมแก้ไข

เครื่องมือนี้มีให้บริการในภาษาอื่น