onlinetools.dev

ตัวแปลง XML ↔ JSON

แปลงเอกสาร XML เป็น JSON และย้อนกลับ รวมแอตทริบิวต์ด้วย

ทำงานในเครื่อง
loading…
เกี่ยวกับเครื่องมือนี้

แปลง XML เป็น JSON เพื่อป้อนคำตอบ SOAP รุ่นเก่า ฟีด RSS หรือไฟล์ POM ของ Maven เข้าสู่ JavaScript, jq หรือ API ที่ใช้ JSON เป็นหลัก — หรือทำทางกลับกันเพื่อผลิต XML จากข้อมูล JSON แอตทริบิวต์ถูกเก็บไว้: มันกลายเป็นคีย์ "@_ชื่อ" และเนื้อหาข้อความที่อยู่ร่วมกับแอตทริบิวต์จะไปอยู่ใต้ "#text" จึงไม่มีข้อมูลใดหายไปเงียบ ๆ

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

ทั้งสองทิศทางทำงานในเบราว์เซอร์ของคุณ วางฟีดใบแจ้งหนี้หรือคำตอบ API ได้โดยไม่ต้องกลัวว่ามันจะไปไหน

คำถามที่พบบ่อย

ทำไมบางค่ากลับมาเป็นตัวเลขแทนที่จะเป็นสตริง?
ตัวแยกวิเคราะห์รู้จักข้อความที่เป็นตัวเลขและแปลงให้ ซึ่งเป็นสิ่งที่ผู้บริโภคส่วนใหญ่ต้องการ แต่ระวังรหัสประจำตัวที่มีเลขศูนย์นำหน้า (รหัสสินค้า หมายเลขโทรศัพท์) — หากเรื่องนี้สำคัญกับข้อมูลของคุณ ให้ใส่อัญประกาศหลังการแปลง หรือถือว่าผลลัพธ์เป็นเพียงจุดตั้งต้น
อิลิเมนต์ที่ซ้ำกันถูกจัดการอย่างไร?
พี่น้องตั้งแต่สองตัวขึ้นไปที่ชื่อเดียวกันจะกลายเป็นอาร์เรย์ JSON ใต้คีย์นั้น ส่วนที่ปรากฏครั้งเดียวจะยังเป็นอ็อบเจกต์ธรรมดา — ความไม่สมมาตรนี้ติดมากับการจับคู่รูปแบบ โค้ดที่บริโภค JSON จึงควรรองรับทั้งสองรูปทรงหรือปรับให้เป็นมาตรฐานก่อน
คีย์ @_ และ #text หมายถึงอะไร?
@_ ทำเครื่องหมายสิ่งที่เคยเป็นแอตทริบิวต์ของ XML ส่วน #text บรรจุข้อความของอิลิเมนต์เมื่อมีแอตทริบิวต์อยู่ด้วย การป้อนธรรมเนียมเดียวกันนี้กลับเข้าไปในทิศทาง JSON → XML จะประกอบมาร์กอัปเดิมขึ้นมาใหม่ได้
ทำไม JSON → XML ปฏิเสธอาร์เรย์ที่อยู่ระดับบนสุดของฉัน?
เอกสาร XML ต้องมีอิลิเมนต์รากเพียงหนึ่งเดียว แต่อาร์เรย์เปล่า ๆ ไม่มีเลย ให้ห่ออาร์เรย์ไว้ในอ็อบเจกต์ — {"items": {"item": [...]}} — แล้วตัวแปลงจะผลิตเอกสารที่ถูกต้องตามรูปแบบออกมา
เครื่องมือที่เกี่ยวข้อง