UltKit
รูปภาพ11
PDF13
เอกสารและข้อมูล7
วิดีโอ6
เสียง4
เครื่องมืออื่น ๆ22

แปลง JSON เป็น XML

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

แปลงไฟล์ข้อมูล

หรือลากไฟล์ CSV, TSV, TXT … มาวางที่นี่ ·

สูงสุด 95 MB ต่อไฟล์· ได้สูงสุด 20 ไฟล์· ลบหลังจาก 30 นาที

ผลลัพธ์

ไฟล์จะถูกประมวลผลบนเซิร์ฟเวอร์ของเราและถูกลบหลังจาก 30 นาที

วิธีใช้เครื่องมือนี้

  1. 1

    อัปโหลดไฟล์ JSON

    เพิ่มไฟล์ .json เช่นผลลัพธ์จาก API หรือไฟล์ JSON Lines ได้สูงสุด 20 ไฟล์ ไฟล์ละไม่เกิน 95 MB

  2. 2

    ตั้งชื่ออิลิเมนต์ราก

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

  3. 3

    แปลงและจับคู่ฟิลด์

    กด แปลงเป็น XML แล้วดาวน์โหลด หากสคีมาของระบบปลายทางต้องการชื่อแท็กต่างออกไป ให้เปลี่ยนชื่อแท็กเอง

ทำไมต้องแปลง JSON เป็น XML ในเมื่อ API ส่วนใหญ่เปลี่ยนมาใช้ JSON แล้ว

JSON ชนะในโลกของ Web API ข้อกำหนดปัจจุบันคือ RFC 8259 ปี 2017 ยาวเพียงไม่กี่หน้า ส่วน XML เก่ากว่า เป็น W3C Recommendation ตั้งแต่เดือนกุมภาพันธ์ 1998 และยังอยู่ในที่ที่สัญญาเข้มงวด ได้แก่ ธนาคาร ใบแจ้งหนี้อิเล็กทรอนิกส์ งานจัดพิมพ์ และการรายงานต่อหน่วยงานรัฐ

ดังนั้นทิศทางการแปลงนี้มักตามมาด้วยเรื่องเงินหรือกฎระเบียบ เช่น นักพัฒนาดึงคำสั่งซื้อจาก JSON API แล้วต้องส่งไปยังบริการ SOAP ของคู่ค้า ร้านค้าเก็บสินค้าเป็น JSON แต่เว็บเปรียบเทียบราคาต้องการฟีด XML หรือทีมเก็บคำแปลเป็น JSON แต่บิลด์ Android ต้องการ strings.xml หากปลายทางเป็นสเปรดชีต แปลง JSON เป็น CSV จะให้เป็นแถวแทนเอลิเมนต์

ระบบที่ยังต้องการข้อมูลนำเข้าเป็น XML

การใช้งานเครื่องมือแปลง JSON เป็น XML
หน่วยงานข้อกำหนดแหล่งที่มา
เว็บเซอร์วิส SOAPทุกคำขอส่งเป็นซองจดหมาย XML โดย SOAP 1.2 เป็น W3C Recommendation ในปี 2003—
Google Merchant Centerรับฟีดสินค้าเป็น XML ในรูปแบบ RSS 2.0 หรือ Atom 1.0 รวมถึงข้อความที่คั่นด้วยตัวคั่น—
ใบแจ้งหนี้อิเล็กทรอนิกส์ Peppolแลกเปลี่ยนใบแจ้งหนี้เป็นเอกสาร XML แบบ UBL 2.1 ตามกฎ Peppol BIS Billing 3.0—
แอป Androidทรัพยากรข้อความและคำแปลอยู่ใน res/values/strings.xml—

ตัวอย่างการแปลง JSON เป็น XML: สินค้าสองรายการ

XML ที่สร้างจาก [{"sku":"A-17","price":12.5,"tags":["new","sale"]}, {"sku":"B-02","price":8}]
<?xml version="1.0" encoding="UTF-8"?>
<!-- อาร์เรย์ tags กลายเป็นองค์ประกอบ <tags> ที่ซ้ำกัน -->
<rows>
  <row>
    <sku>A-17</sku>
    <price>12.5</price>
    <tags>new</tags>
    <tags>sale</tags>
  </row>
  <row>
    <sku>B-02</sku>
    <price>8</price>
  </row>
</rows>

ความเชื่อJSON กับ XML จับคู่กันแบบหนึ่งต่อหนึ่ง การแปลงจึงตรงเป๊ะ

ข้อเท็จจริงXML มีแอตทริบิวต์ เนื้อหาผสม และเนมสเปซที่ JSON ไม่มี ส่วน JSON ก็มีชนิดข้อมูลที่ XML ไม่มี ตัวแปลงต้องเลือกรูปแบบการแมปแบบใดแบบหนึ่ง และตัวนี้ใช้เอลิเมนต์ลูกทั้งหมด

ความเชื่อตัวเลข 12.5 ยังคงเป็นตัวเลขใน XML

ข้อเท็จจริงXML เก็บเป็นตัวอักษร 12.5 จึงเป็นข้อความ จนกว่าสคีมาหรือโปรแกรมที่อ่านจะระบุว่าเป็นเลขทศนิยม

สิ่งที่เปลี่ยนไปเมื่อแปลง JSON เป็น XML

มีสามเรื่องที่ควรตรวจ ชนิดข้อมูลจะกลายเป็นข้อความ ดังนั้น true, null และ 0 จะมาเป็นตัวอักษรทั้งหมด โดย null มักกลายเป็นเอลิเมนต์ว่าง คีย์ที่ไม่ใช่ชื่อ XML ที่ใช้ได้ต้องเปลี่ยนชื่อ เพราะแท็กขึ้นต้นด้วยตัวเลขหรือมีช่องว่างไม่ได้ และผลลัพธ์จะมีขนาดใหญ่ขึ้น เพราะทุกค่าถูกห่อด้วยแท็กเปิดและแท็กปิดที่ซ้ำชื่อคีย์

นอกจากนี้ไม่มีอะไรสูญหาย การซ้อนกันคงอยู่เป็นเอลิเมนต์ซ้อน ลำดับของระเบียนถูกเก็บไว้ และข้อความ Unicode ยังครบถ้วนเพราะเขียนไฟล์เป็น UTF-8 ตัวเลือกอื่นสำหรับข้อมูลโครงสร้าง ตั้งแต่ YAML ถึง SQL อยู่ในหน้า แปลงไฟล์ข้อมูล

ข้อมูลฟอร์แมต JSON และ XML

JSON

JavaScript Object Notation

JSON คือรูปแบบข้อความขนาดเบาสำหรับข้อมูลเชิงโครงสร้าง ได้รับความนิยมจาก Douglas Crockford ในช่วงต้นทศวรรษ 2000 และกำหนดเป็นมาตรฐาน RFC 8259 และ ECMA-404 แสดงอ็อบเจกต์ อาร์เรย์ สตริง ตัวเลข ค่าบูลีน และ null ด้วยไวยากรณ์ที่เรียบง่ายและอ่านง่าย เป็นรูปแบบเริ่มต้นของ API บนเว็บ ไฟล์การตั้งค่า และการแลกเปลี่ยนข้อมูลระหว่างแอปในแทบทุกภาษาโปรแกรม ไม่มีคอมเมนต์ วันที่ หรือสคีมาในตัว และไฟล์ขนาดใหญ่ที่ซ้อนกันหลายชั้นอ่านได้ยากหากไม่มีโปรแกรมดู

การบีบอัด
–
พื้นหลังโปร่งใส
–
ภาพเคลื่อนไหว
–
เปิดตัว
2001 · Douglas Crockford
ตัวแปลงไฟล์ JSON

XML

Extensible Markup Language

XML เป็นภาษามาร์กอัปสำหรับข้อมูลที่มีโครงสร้าง ซึ่ง W3C เผยแพร่ในปี 1998 ใช้แท็กซ้อนกันพร้อมแอตทริบิวต์ และรองรับสคีมา เนมสเปซ และการตรวจสอบความถูกต้อง จึงรองรับเอกสารที่ซับซ้อนได้อย่างมั่นคง เป็นพื้นฐานของฟีด RSS, SVG เอกสาร Office ไซต์แมป และการแลกเปลี่ยนข้อมูลขององค์กรและภาครัฐจำนวนมาก XML ยืดยาวกว่า JSON แต่ภาษาโปรแกรมทุกภาษาและเครื่องมือสเปรดชีตจำนวนมากอ่านได้

การบีบอัด
–
พื้นหลังโปร่งใส
–
ภาพเคลื่อนไหว
–
เปิดตัว
1998 · W3C
ตัวแปลงไฟล์ XML

ต้องแปลง JSON เป็น XML เมื่อข้อมูลสมัยใหม่ต้องเข้าสู่ระบบแบบเก่า เช่น SOAP endpoint ฟีดสินค้า เครือข่ายใบแจ้งหนี้อิเล็กทรอนิกส์ หรือไฟล์ตั้งค่าที่ฝั่งผู้อ่านเขียนมาให้อ่านเอลิเมนต์ ไม่ใช่เครื่องหมายปีกกา

คำถามที่พบบ่อยเกี่ยวกับการแปลง JSON เป็น XML

ทำไม XML ต้องมีอิลิเมนต์รากเดียว ในเมื่อ JSON ของฉันขึ้นต้นด้วยอาร์เรย์

ข้อกำหนด XML 1.0 กำหนดว่าเอกสารที่ถูกต้องตามรูปแบบต้องมีเอลิเมนต์เดียวที่ครอบเนื้อหาอื่นทั้งหมด อาร์เรย์ของ JSON ไม่มีตัวครอบเช่นนั้น ตัวแปลงจึงเพิ่มให้ โดยตั้งชื่อตาม แท็กราก XML และวางแต่ละรายการของอาร์เรย์ไว้ภายในเป็น <row>

คีย์ JSON อย่าง "2024 total" หรือ "unit price" จะเป็นอย่างไรเมื่อแปลงเป็น XML

ทั้งสองอย่างไม่ใช่ชื่อเอลิเมนต์ XML ที่ใช้ได้ ชื่อต้องไม่ขึ้นต้นด้วยตัวเลขและต้องไม่มีช่องว่าง ให้เปลี่ยนชื่อคีย์เหล่านี้ใน JSON ก่อนแปลง โดยควรตรงกับชื่อแท็กที่สคีมาปลายทางใช้ เพื่อให้ผลลัพธ์ไม่ต้องแก้ไขภายหลัง

อาร์เรย์ JSON ที่อยู่ในเรคคอร์ดจะเขียนเป็น XML อย่างไร

จะเป็นเอลิเมนต์ชื่อเดิมที่ซ้ำกันหนึ่งครั้งต่อหนึ่งรายการ อาร์เรย์ tags ที่มีสตริงสามค่าจะกลายเป็นเอลิเมนต์ <tags> สามตัวต่อกัน ส่วนอาร์เรย์ว่างจะไม่เหลืออะไรเลย ซึ่งเป็นหนึ่งในไม่กี่จุดที่การแปลง JSON เป็น XML ทำให้ข้อมูลสูญหาย

ไฟล์ XML ที่ได้จะผ่านการตรวจสอบ XSD ของคู่ค้าหรือไม่

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

แปลง XML กลับเป็น JSON ได้หรือไม่

ใช้ แปลง XML เป็น JSON แต่อาจมีความต่างเล็กน้อยเมื่อแปลงไปกลับ เพราะ XML เก็บทุกค่าเป็นข้อความ ตัวเลขหรือ true ที่เดิมอยู่ใน JSON จึงอาจกลับมาเป็นสตริง