ตัวแปลง XML <> JSON
การกำหนดค่า
การเยื้อง
XML
JSON
รายละเอียดทางเทคนิค
วิธีการทำงานของตัวแปลง XML ↔ JSON
เครื่องมือนี้ทำอะไร
ตัวแปลง XML ↔ JSON จะแปลงข้อมูลระหว่างรูปแบบ XML และ JSON โดยแปลงลำดับชั้นขององค์ประกอบให้เป็นโครงสร้างอ็อบเจ็กต์ ตัวแปลงนี้รองรับการแปลงสองทิศทาง: แปลง xml เป็น json ออนไลน์ และแปลง json เป็น xml ตัวแปลงจะแมปองค์ประกอบ XML เป็นอ็อบเจ็กต์ JSON, แอตทริบิวต์ XML เป็นพร็อพเพอร์ตีของอ็อบเจ็กต์ (ขึ้นต้นด้วย @_) และเนื้อหาข้อความของ XML เป็นค่าสตริง มีการจัดการแบบ best-effort สำหรับ namespace และส่วน CDATA โดยคงข้อมูล namespace ไว้เท่าที่เป็นไปได้ เครื่องมือนี้รองรับการกำหนดค่า indentation สำหรับเอาต์พุตทั้ง XML และ JSON ทำให้คุณจัดรูปแบบผลลัพธ์ได้ตามต้องการ
กรณีการใช้งานทั่วไปของนักพัฒนา
นักพัฒนาใช้ตัวแปลง XML JSON เมื่อทำงานกับ API ที่ใช้รูปแบบต่างกัน ระบบเดิมที่ส่งออกเป็น XML หรือแอปสมัยใหม่ที่ใช้งาน JSON API แบบ SOAP จำนวนมากส่งกลับเป็น XML แต่แอปสมัยใหม่มักต้องการ JSON ทำให้การแปลง xml เป็น json เป็นสิ่งจำเป็นสำหรับการผสานรวม ตัวแปลง xml json มีคุณค่าเมื่อย้ายข้อมูลระหว่างระบบ แปลงการตอบกลับของ API หรือทำงานกับไฟล์คอนฟิกในรูปแบบต่าง ๆ ก่อนแปลง คุณอาจต้องการตรวจสอบ XML ของคุณด้วย ตัวตรวจสอบ XML หรือจัดรูปแบบด้วย ตัวจัดรูปแบบ XML หลังจากแปลงเป็น JSON แล้ว คุณสามารถจัดรูปแบบและตรวจสอบเอาต์พุตด้วย ตัวจัดรูปแบบ JSON ตัวแปลงช่วยเมื่อดีบักปัญหาการผสานรวม เปรียบเทียบโครงสร้างข้อมูล หรือเตรียมข้อมูลสำหรับระบบที่ต้องการรูปแบบเฉพาะ
รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย
XML และ JSON มีโครงสร้างที่แตกต่างกันโดยพื้นฐาน: XML เป็นแบบอิงองค์ประกอบพร้อมแอตทริบิวต์ ในขณะที่ JSON เป็นแบบอิงค่าโดยใช้อ็อบเจ็กต์และอาร์เรย์ ตัวแปลงใช้การแมปมาตรฐาน: องค์ประกอบ XML จะกลายเป็นอ็อบเจ็กต์ JSON แอตทริบิวต์ XML จะกลายเป็นพร็อพเพอร์ตีที่ขึ้นต้นด้วย @_ (เช่น @_id) และเนื้อหาข้อความของ XML จะกลายเป็นค่าสตริงที่เก็บไว้ในพร็อพเพอร์ตี #text องค์ประกอบ XML ที่ซ้ำกันและมีชื่อเดียวกันจะถูกแปลงเป็นอาร์เรย์ JSON องค์ประกอบ XML ว่าง ( <x/>) จะกลายเป็นอ็อบเจ็กต์ว่าง ( {"x": }) เนมสเปซของ XML จะถูกคงไว้ในโครงสร้าง JSON เท่าที่เป็นไปได้ เมื่อแปลง JSON เป็น XML ตัวแปลงจะย้อนการแมปนี้ โดยสร้างองค์ประกอบ XML จากอ็อบเจ็กต์ JSON และสร้างแอตทริบิวต์จากพร็อพเพอร์ตีที่ขึ้นต้นด้วย @_
ตัวอย่างการแปลง:
- องค์ประกอบเดี่ยว:
<person id="1">John</person>→{"person": {"@_id": "1", "#text": "John"}'} - องค์ประกอบซ้ำ:
<items><item id="1"/><item id="2"/></items>→{"items": {"item": [{"@_id": "1"}, {"@_id": "2"}]}'}
ข้อผิดพลาดที่พบบ่อยและกรณีขอบ
ปัญหาที่พบบ่อยอย่างหนึ่งคือแอตทริบิวต์และองค์ประกอบของ XML จะถูกแปลงเป็นพร็อพเพอร์ตีของ JSON ทั้งคู่ ซึ่งอาจทำให้เกิดความกำกวมเมื่อแปลงกลับ อีกข้อควรระวังคือการจัดการเนื้อหาแบบผสม: องค์ประกอบ XML ที่มีทั้งข้อความและองค์ประกอบลูกต้องมีการจัดการพิเศษใน JSON เนมสเปซของ XML อาจทำให้ชื่อพร็อพเพอร์ตีใน JSON ซับซ้อน ซึ่งอาจไม่เหมาะสำหรับการเข้าถึงด้วยโปรแกรม ส่วน CDATA จะถูกคงไว้ แต่ใน JSON อาจปรากฏเป็นสตริงที่ถูกเอสเคป คำสั่งประมวลผล (processing instructions) และคอมเมนต์มักจะสูญหายหรือถูกแปลงในลักษณะที่อาจไม่สามารถแปลงกลับได้อย่างสมบูรณ์ ลำดับขององค์ประกอบ XML จะถูกคงไว้เมื่อถูกแทนด้วยอาร์เรย์ JSON (องค์ประกอบซ้ำ) แต่ลำดับพร็อพเพอร์ตีของอ็อบเจ็กต์ JSON ไม่ได้รับการรับประกันในทุกการใช้งานและไม่ควรพึ่งพา เมื่อแปลงเอกสาร XML ขนาดใหญ่ โครงสร้าง JSON ที่ได้อาจซ้อนลึกและซับซ้อน นักพัฒนาควรตรวจสอบว่าการแปลงคงข้อมูลที่ต้องการไว้ โดยเฉพาะกรณีขอบอย่างองค์ประกอบว่าง องค์ประกอบที่มีแต่แอตทริบิวต์ และองค์ประกอบที่มีเนมสเปซ
เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด
ใช้ตัวแปลงนี้สำหรับการแปลงรูปแบบอย่างรวดเร็ว การแปลงแบบครั้งเดียว หรือเมื่อทำงานนอกสภาพแวดล้อมการพัฒนาของคุณ เหมาะสำหรับการแปลง xml เป็น json ออนไลน์ การดีบักปัญหาการเชื่อมต่อระบบ หรือการเตรียมข้อมูลสำหรับระบบที่แตกต่างกัน สำหรับโค้ดโปรดักชัน ให้ใช้ไลบรารีแปลง XML/JSON ที่ผสานรวมอยู่ในแอปพลิเคชันของคุณ ซึ่งสามารถจัดการการแปลงรูปแบบเป็นส่วนหนึ่งของไปป์ไลน์การประมวลผลข้อมูลได้ ไลบรารีสำหรับพาร์ส XML และ JSON ให้การจัดการข้อผิดพลาดที่ดีกว่า รองรับสตรีมมิงสำหรับเอกสารขนาดใหญ่ และควบคุมตัวเลือกการแปลงได้มากกว่า เครื่องมือบนเบราว์เซอร์เหมาะสำหรับการแปลงแบบเฉพาะกิจและการสำรวจ ในขณะที่โซลูชันแบบโค้ดให้การทำงานอัตโนมัติ การตรวจสอบความถูกต้อง และการผสานรวมกับไปป์ไลน์ CI/CD สำหรับการเชื่อมต่อระบบระดับองค์กร ไลบรารีแบบเนทีฟให้ประสิทธิภาพที่ดีกว่า การตรวจสอบสคีมา และรองรับฟีเจอร์ XML ที่ซับซ้อน เช่น XPath และ XSLT