วิธีแปลง JSON เป็น XML
- วาง JSON หรือเปิดไฟล์
.jsonXML จะแสดงอยู่ข้างๆ ขณะที่คุณพิมพ์ - ตั้งชื่อ root element (หรือเว้นว่างไว้เพื่อใช้คีย์ระดับบนสุดเพียงตัวเดียว) คำนำหน้า attribute และการเยื้อง
- คัดลอก XML หรือดาวน์โหลดเป็นไฟล์
.xml
JSON ถูกแปลงเป็น XML อย่างไร
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | attribute id="7" บนอิลิเมนต์แม่ |
{"#text": "Hello"} | เนื้อหาข้อความของอิลิเมนต์แม่ |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key> – ชื่อที่ไม่ถูกต้องจะถูกแก้ไข |
อาร์เรย์ระดับบนสุด [1, 2] | <root><item>1</item><item>2</item></root> |
&, <, > ในข้อความ | &, <, > |
JSON vs XML ต่างกันอย่างไร
JSON มีอาร์เรย์ ตัวเลข boolean และ null ส่วน XML มีเพียงอิลิเมนต์ attribute และข้อความ ชนิดข้อมูลจึงไม่ถูกเก็บรักษาไว้: ทั้ง 42 และ "42" จะกลายเป็นข้อความ 42 เหมือนกัน ในทางกลับกัน XML ก็มี attribute, namespace และ mixed content ที่ JSON ไม่มี หากคุณวางแผนจะแปลง XML กลับเป็น JSON ในภายหลัง ให้ใช้ธรรมเนียมทั่วไปแบบเดียวกับที่นี่ – @ สำหรับ attribute และ #text สำหรับเนื้อหาข้อความ – ซึ่งตัวแปลงส่วนใหญ่เข้าใจ
คำถามที่พบบ่อย
อาร์เรย์ JSON ถูกแปลงเป็น XML อย่างไร?
แต่ละรายการจะกลายเป็นอิลิเมนต์ที่ตั้งชื่อตามคีย์ของอาร์เรย์ ดังนั้น {"book": [ … ]} จะกลายเป็นอิลิเมนต์ <book> หลายตัว ส่วนรายการของอาร์เรย์ระดับบนสุดจะกลายเป็นอิลิเมนต์ <item> ภายใน root
สร้าง attribute ของ XML จาก JSON ได้อย่างไร?
ใส่ @ นำหน้าคีย์: {"user": {"@id": 7, "name": "Ada"}} จะกลายเป็น <user id="7"><name>Ada</name></user> คุณเปลี่ยนคำนำหน้าได้ในตัวเลือก
คีย์ที่ไม่ใช่ชื่อ XML ที่ถูกต้องจะเป็นอย่างไร?
อักขระที่ชื่อ XML ไม่อนุญาต เช่น ช่องว่าง จะถูกแทนที่ด้วยขีดล่าง และชื่อที่ขึ้นต้นด้วยตัวเลขหรือ “xml” จะถูกเติมขีดล่างไว้ข้างหน้า: "2nd key" จะกลายเป็น <_2nd_key>
XML ที่สร้างขึ้นถูกต้องหรือไม่?
ถูกต้อง อักขระพิเศษจะถูก escape ชื่ออิลิเมนต์ทุกตัวถูกต้อง และเอกสารมี root element เพียงตัวเดียว พร้อม XML declaration ที่ด้านบนซึ่งจะใส่หรือไม่ก็ได้