XML เป็น ตัวแปลง JSON
แปลงข้อมูลหรือไฟล์ XML เป็นรูปแบบ JSON ทันทีในเบราว์เซอร์ของคุณ รองรับการเยื้องแบบกำหนดเองและจัดการโครงสร้างที่ซ้อนกัน
เลือกไฟล์ XML
หรือลากและวางที่นี่
แปลงข้อมูลหรือไฟล์ XML เป็นรูปแบบ JSON ทันทีในเบราว์เซอร์ของคุณ รองรับการเยื้องแบบกำหนดเองและจัดการโครงสร้างที่ซ้อนกัน
หรือลากและวางที่นี่
XML และ JSON เป็นทั้งรูปแบบการแลกเปลี่ยนข้อมูล แต่มาจากยุคที่แตกต่างกันของเว็บ XML ซึ่งเป็นมาตรฐานในปี 1998 ได้รับการออกแบบให้เป็นรูปแบบมาร์กอัปที่อธิบายตัวเองพร้อมแอตทริบิวต์ เนมสเปซ และการตรวจสอบความถูกต้องของสคีมา JSON ถือกำเนิดขึ้นในช่วงต้นทศวรรษ 2000 ในรูปแบบที่มีน้ำหนักเบากว่า ซึ่งเหมาะสมกับรันไทม์ของ JavaScript และ API สมัยใหม่มากกว่า เว็บ API ใหม่ส่วนใหญ่พูด JSON; ระบบเก่าๆ จำนวนมาก — บริการ SOAP, ฟีด RSS, ไฟล์การกำหนดค่า, การบูรณาการระดับองค์กร — ยังคงสร้าง XML การแปลงระหว่างสิ่งเหล่านี้เป็นหนึ่งในงานการทำงานร่วมกันที่พบบ่อยที่สุดในการพัฒนาสมัยใหม่
การแปลงไม่ใช่การสูญเสียที่สมบูรณ์แบบเนื่องจากทั้งสองรูปแบบมีพลังในการแสดงออกที่แตกต่างกัน XML มีแอตทริบิวต์ (ซึ่ง JSON ไม่มีอยู่แล้ว) แยกความแตกต่างระหว่างเนื้อหาข้อความและชื่อองค์ประกอบ และรองรับเนื้อหาแบบผสม (องค์ประกอบที่มีทั้งองค์ประกอบข้อความและองค์ประกอบลูก) โมเดลออบเจ็กต์/อาร์เรย์ที่ตรงไปตรงมาของ JSON ไม่สามารถแสดงถึงคุณลักษณะเหล่านี้ได้โดยตรง ดังนั้นตัวแปลงจึงใช้หลักเกณฑ์: แอตทริบิวต์จะกลายเป็นคีย์ที่นำหน้าด้วย @ เนื้อหาข้อความจะกลายเป็นคีย์ #text และอื่นๆ
ตัวแปลงนี้จะแยกวิเคราะห์ XML โดยใช้ DOMParser ในตัวของเบราว์เซอร์ และเดินตามแผนผัง DOM ที่เป็นผลลัพธ์เพื่อสร้าง JSON องค์ประกอบที่มีชื่อแท็กเดียวกันกับพี่น้องจะถูกรวบรวมไว้ในอาร์เรย์ คุณลักษณะจะเข้าสู่คีย์พิเศษ เนมสเปซและคำแนะนำในการประมวลผลจะถูกเก็บรักษาไว้เมื่อมีอยู่ ผลลัพธ์ที่ได้คือ JSON ที่มนุษย์สามารถอ่านได้ซึ่งจะย้อนกลับไปยัง XML อย่างสมเหตุสมผล
โค้ดแอปพลิเคชันที่ทันสมัยที่สุดจะสะดวกสบายกว่าเมื่อใช้ JSON JavaScript แยกวิเคราะห์ JSON แบบเนทิฟ โมดูล json ของ Python อยู่ในไลบรารีมาตรฐาน และภาษาอื่นๆ แทบทุกภาษามีการรองรับ JSON เฟิร์สคลาสที่เทียบเท่ากัน การประมวลผล XML จำเป็นต้องนำเข้าไลบรารีเพิ่มเติมและเขียนต้นแบบเพิ่มเติม การแปลง XML ขาเข้าเป็น JSON ก่อนการประมวลผลมักเป็นเส้นทางที่เร็วที่สุดจากฟีด XML ภายนอกไปยังโครงสร้างข้อมูลภายใน
การใช้เครื่องมือยังใช้ JSON อีกด้วย เครื่องมือตกแต่ง JSON, เครื่องมือตรวจสอบ, เครื่องมือตรวจสอบสคีมา, ภาษาคิวรี (jq, JSONPath) และผู้ดูมีอยู่มากมาย XML ที่เทียบเท่านั้นน้อยกว่าและเก่ากว่าบ่อยครั้ง การทำงานใน JSON จะปลดล็อกระบบนิเวศของเครื่องมือที่สมบูรณ์ยิ่งขึ้น
วาง XML รับ JSON
DOMParser สร้าง XML DOM เหมือนกับที่เบราว์เซอร์ใช้สำหรับหน้า XHTML ตัวแปลงเดิน DOM นี้แบบวนซ้ำ สำหรับแต่ละองค์ประกอบ องค์ประกอบจะสร้างออบเจ็กต์ JSON: คุณลักษณะจะกลายเป็นคีย์ที่นำหน้าด้วย @ (เช่น @id, @class) องค์ประกอบลูกขององค์ประกอบจะถูกเรียกซ้ำในโครงสร้างเดียวกัน เนื้อหาข้อความ เมื่อแสดงร่วมกับเด็กๆ จะอยู่ภายใต้คีย์ #text
องค์ประกอบย่อยที่ซ้ำกันซึ่งมีชื่อแท็กเดียวกันจะถูกรวบรวมไว้ในอาร์เรย์ JSON ลูกเดี่ยวของชื่อที่กำหนดจะปรากฏเป็นค่าอ็อบเจ็กต์ ลูกหลายคนปรากฏเป็นอาร์เรย์ของวัตถุ แบบแผนนี้ใช้งานได้ดีในทางปฏิบัติ แต่หมายความว่ารูปร่าง JSON ขึ้นอยู่กับว่าองค์ประกอบปรากฏขึ้นเพียงครั้งเดียวหรือหลายครั้ง ซึ่งเป็นข้อบกพร่องที่ทราบกันดีของการแมป XML เป็น JSON
เนมสเปซจะถูกเก็บรักษาไว้เป็นส่วนหนึ่งของชื่อองค์ประกอบ (คำนำหน้า: localName) คำแนะนำในการประมวลผลและส่วน CDATA จะถูกแปลงเป็นเนื้อหาข้อความ การประกาศ XML และ DOCTYPE จะถูกแยกออกจากเอาต์พุต JSON แต่ไม่มีผลกระทบต่อข้อมูล