เลือกภาษา

เครื่องมือแปลง JSON เป็น XML ออนไลน์

แปลงโค้ด JSON เป็น XML ที่สมบูรณ์แบบในเบราว์เซอร์ของคุณ กำหนด root element, ตั้งค่าการเยื้อง และจัดการ attribute prefix ได้ตามต้องการ

แปลง JSON เป็น XMLวิธีใช้งาน ↓
จำนวนช่องว่างต่อระดับการซ้อนทับ
ต้องการแปลงกลับกัน?แปลง XML เป็น JSON
Mehmet Demiray (เมห์เมต เดมิเรย์) เผยแพร่ อัปเดตล่าสุด
แชร์

ทำไมเรายังต้องแปลง JSON เป็น XML ในยุคนี้?

แม้ว่า JSON (JavaScript Object Notation) จะกลายเป็นมาตรฐานหลักสำหรับการแลกเปลี่ยนข้อมูลในเว็บแอปพลิเคชันและ API สมัยใหม่ไปแล้ว แต่ XML (eXtensible Markup Language) ก็ยังคงมีความสำคัญและถูกใช้งานอย่างแพร่หลายในหลายระบบ โดยเฉพาะในสภาพแวดล้อมระดับองค์กร ด้วยเหตุนี้ เครื่องมือ แปลง JSON เป็น XML จึงยังคงเป็นสิ่งจำเป็นสำหรับนักพัฒนาและผู้ดูแลระบบอยู่เสมอ

สาเหตุหลักที่ XML ยังคงอยู่คือระบบดั้งเดิม (Legacy Systems) ที่สร้างขึ้นมาก่อนที่ JSON จะได้รับความนิยม ระบบเหล่านี้มักเป็นระบบขนาดใหญ่และซับซ้อน เช่น ระบบงานหลักของธนาคาร, ระบบราชการ, หรือแพลตฟอร์ม E-commerce รุ่นเก่า การแก้ไขหรือเปลี่ยนสถาปัตยกรรมเพื่อรองรับ JSON อาจมีค่าใช้จ่ายสูงและมีความเสี่ยงมากเกินไป ดังนั้น การแปลงข้อมูล JSON ที่ได้รับจากบริการใหม่ๆ ให้เป็น XML เพื่อป้อนเข้าสู่ระบบเก่าจึงเป็นทางออกที่ปลอดภัยและมีประสิทธิภาพมากกว่า

นอกจากนี้ เว็บเซอร์วิสที่ใช้โปรโตคอล SOAP (Simple Object Access Protocol) ซึ่งเป็นพื้นฐานของบริการระดับองค์กรจำนวนมาก ก็ยังคงใช้ XML เป็นรูปแบบข้อความหลักในการสื่อสาร หากคุณต้องเชื่อมต่อกับ API ของหน่วยงานราชการไทยบางแห่ง หรือระบบของคู่ค้าทางธุรกิจที่ใช้ SOAP คุณจำเป็นต้องส่งข้อมูลในรูปแบบ XML เท่านั้น เครื่องมือแปลงข้อมูลจึงช่วยลดความซับซ้อนในกระบวนการนี้ได้อย่างมาก ทำให้คุณสามารถพัฒนาระบบฝั่งของคุณด้วยเทคโนโลยีที่ทันสมัยโดยใช้ JSON และแปลงข้อมูลเฉพาะส่วนที่ต้องสื่อสารกับระบบเก่าเท่านั้น หากคุณต้องการทำในทิศทางตรงกันข้าม ก็สามารถใช้เครื่องมือ แปลง XML เป็น JSON ได้เช่นกัน

หลักการทำงาน: จากอ็อบเจกต์ JSON สู่เอลิเมนต์ XML

การแปลงข้อมูลจาก JSON ไปเป็น XML นั้นมีหลักการที่ตรงไปตรงมา โดยอาศัยการจับคู่โครงสร้างระหว่างสองรูปแบบนี้ เครื่องมือ แปลง JSON เป็น XML จะทำตามกฎเกณฑ์พื้นฐานเพื่อให้แน่ใจว่าข้อมูลจะถูกถ่ายทอดไปอย่างถูกต้องและสอดคล้องกัน

  1. Key-Value Pairs เป็น Elements: คู่ key: value ใน JSON จะถูกแปลงเป็นเอลิเมนต์ XML ในรูปแบบ <key>value</key> ตัวอย่างเช่น "name": "สมชาย" จะกลายเป็น <name>สมชาย</name>

2. Nested Objects เป็น Nested Elements: อ็อบเจกต์ที่ซ้อนกันอยู่ภายใน JSON จะถูกแปลงเป็นเอลิเมนต์ที่ซ้อนกันใน XML เช่นกัน โครงสร้างลำดับชั้นจะถูกรักษาไว้เหมือนเดิม JSON: {"user": {"firstname": "สมศรี", "lastname": "ใจดี"}} XML: <user><firstname>สมศรี</firstname><lastname>ใจดี</lastname></user>

3. Arrays เป็น Repeated Elements: อาร์เรย์ใน JSON ซึ่งใช้เก็บรายการข้อมูล จะถูกแปลงเป็นเอลิเมนต์ที่มีชื่อเดียวกันปรากฏซ้ำๆ กันตามจำนวนสมาชิกในอาร์เรย์ ชื่อของเอลิเมนต์จะมาจากชื่อ key ของอาร์เรย์นั้นๆ JSON: {"products": [{"id": "P001"}, {"id": "P002"}]} XML: <products><id>P001</id></products><products><id>P002</id></products>

  1. Root Element: เอกสาร XML ที่สมบูรณ์จะต้องมีเอลิเมนต์ราก (Root Element) เพียงหนึ่งเดียวที่ครอบทุกเอลิเมนต์อื่นไว้ แต่ JSON ไม่มีแนวคิดนี้โดยกำเนิด ดังนั้น เครื่องมือแปลงข้อมูลจึงมักจะสร้าง root element ขึ้นมาให้โดยอัตโนมัติ (เช่น <root>...</root>) หรือให้ผู้ใช้สามารถกำหนดชื่อเองได้ เพื่อให้ผลลัพธ์ที่ได้เป็นเอกสาร XML ที่ถูกต้องตามมาตรฐาน

ปรับแต่งผลลัพธ์ XML ของคุณ: ตัวเลือกการจัดรูปแบบ

เครื่องมือ แปลง JSON เป็น XML ที่ดีไม่ได้ทำแค่การแปลงข้อมูล แต่ยังให้คุณสามารถควบคุมรูปแบบของผลลัพธ์เพื่อให้เหมาะสมกับความต้องการของระบบปลายทางได้อีกด้วย ตัวเลือกการจัดรูปแบบที่สำคัญมีดังนี้:

* การกำหนดชื่อ Root Element: ตามที่กล่าวไป เอกสาร XML ที่ถูกต้องต้องมี root element เพียงหนึ่งเดียว เครื่องมือนี้ให้คุณสามารถตั้งชื่อ root element ได้ตามต้องการ เช่น หากคุณกำลังแปลงข้อมูลใบแจ้งหนี้ คุณอาจตั้งชื่อเป็น <invoice> หรือ <ใบแจ้งหนี้> เพื่อให้สื่อความหมายและสอดคล้องกับ XML Schema ที่ระบบปลายทางกำหนด

* การย่อหน้า (Indentation): เพื่อให้อ่านและทำความเข้าใจโครงสร้างของ XML ได้ง่ายขึ้น คุณสามารถเลือกที่จะเพิ่มการย่อหน้าได้ โดยทั่วไปจะมีตัวเลือกให้ใช้การย่อหน้าด้วยช่องว่าง (เช่น 2 หรือ 4 ช่องว่าง) หรือใช้แท็บ (Tab) ผลลัพธ์ที่ได้จะดูเป็นระเบียบและง่ายต่อการดีบักด้วยสายตา แต่หากต้องการไฟล์ที่มีขนาดเล็กที่สุดเพื่อลดปริมาณข้อมูลที่ส่งผ่านเครือข่าย การปิดการย่อหน้าก็เป็นตัวเลือกที่ดี

* ส่วนหัวประกาศ XML (XML Declaration): บรรทัดแรกของไฟล์ XML มักจะเป็น <?xml version="1.0" encoding="UTF-8"?> ซึ่งเป็นการประกาศเวอร์ชันและรูปแบบการเข้ารหัสอักขระ ระบบส่วนใหญ่ต้องการส่วนหัวนี้ แต่ในบางกรณี เช่น เมื่อคุณต้องการนำ XML ที่แปลงได้ไปแทรกเป็นส่วนหนึ่งของเอกสาร XML ที่มีอยู่แล้ว คุณอาจต้องปิดการสร้างส่วนหัวนี้เพื่อหลีกเลี่ยงการประกาศซ้ำซ้อน

* การจัดการคำนำหน้าแอตทริบิวต์ (Attribute Prefix): ในบางกรณี คุณอาจต้องการแปลง key-value บางคู่ใน JSON ให้กลายเป็นแอตทริบิวต์ของเอลิเมนต์ แทนที่จะเป็นเอลิเมนต์ย่อย เครื่องมือบางตัวอนุญาตให้คุณกำหนดคำนำหน้า (prefix) เช่น @ หรือ _ เมื่อ key ใน JSON เริ่มต้นด้วยคำนำหน้านี้ มันจะถูกแปลงเป็นแอตทริบิวต์ ตัวอย่างเช่น {"product": {"@id": "123", "name": "ปากกา"}} จะกลายเป็น <product id="123"><name>ปากกา</name></product> ซึ่งเป็นโครงสร้างที่กระชับกว่า

ข้อควรระวังและวิธีแก้ปัญหาเมื่อแปลงข้อมูล

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

1. ชื่อคีย์ (Key) ที่ไม่ถูกต้องสำหรับ XML: JSON มีความยืดหยุ่นในการตั้งชื่อคีย์มากกว่า XML มาก ชื่อคีย์ใน JSON สามารถขึ้นต้นด้วยตัวเลข มีช่องว่าง หรือใช้อักขระพิเศษได้ แต่ชื่อเอลิเมนต์ใน XML มีกฎที่เข้มงวดกว่า คือห้ามขึ้นต้นด้วยตัวเลขหรือเครื่องหมายวรรคตอนบางชนิด และห้ามมีช่องว่าง ปัญหา: JSON {"1st_place": "ทีมไทย"} วิธีแก้ของเครื่องมือ: เครื่องมือ แปลง JSON เป็น XML มักจะแก้ปัญหานี้โดยอัตโนมัติโดยการเติมอักขระนำหน้า เช่น ขีดล่าง (_) เข้าไป ทำให้ผลลัพธ์กลายเป็น <_1st_place>ทีมไทย</_1st_place> ซึ่งเป็นชื่อที่ถูกต้องสำหรับ XML

2. การจัดการค่า null: ใน JSON ค่า null หมายถึงการไม่มีค่า แต่ใน XML ไม่มีแนวคิดที่เทียบเท่ากันโดยตรง ปัญหา: JSON {"middle_name": null} ผลลัพธ์: เครื่องมือจะแปลงค่า null เป็นเอลิเมนต์ว่าง <middle_name></middle_name> หรือ <middle_name/> ซึ่งเป็นการแสดงออกว่ามีฟิลด์นี้อยู่แต่ไม่มีค่าบรรจุภายใน

3. การเข้ารหัสอักขระพิเศษ (Character Escaping): XML สงวนอักขระบางตัวไว้ใช้งานเฉพาะ เช่น < และ & หากข้อมูลของคุณมีอักขระเหล่านี้อยู่ จะต้องทำการแปลง (escape) เพื่อไม่ให้ตัวประมวลผล XML ตีความผิด ปัญหา: JSON {"company": "A & B จำกัด"} วิธีแก้ของเครื่องมือ: คุณไม่ต้องกังวลเรื่องนี้ เพราะเครื่องมือจะจัดการให้โดยอัตโนมัติ โดยแปลงเป็น &amp; ผลลัพธ์ที่ได้คือ <company>A &amp; B จำกัด</company> ซึ่งถูกต้องตามมาตรฐาน

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

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

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

JSON Array ถูกแปลงเป็นอะไรใน XML? นี่เป็นหนึ่งในข้อสงสัยที่พบบ่อยที่สุด เนื่องจาก XML ไม่มีโครงสร้างที่เทียบเท่ากับอาร์เรย์โดยตรง คำตอบคือ: แต่ละไอเท็มใน JSON Array จะถูกแปลงเป็นเอลิเมนต์ XML ที่มีชื่อซ้ำกัน โดยชื่อของเอลิเมนต์นั้นจะมาจากชื่อคีย์ของอาร์เรย์ใน JSON ตัวอย่าง: สมมติว่าคุณมีข้อมูลตะกร้าสินค้าในรูปแบบ JSON ดังนี้: {"cart_items": [{"product_id": "TS-001", "quantity": 2}, {"product_id": "KB-004", "quantity": 1}]} เมื่อแปลงเป็น XML จะได้ผลลัพธ์ดังนี้: <cart_items><product_id>TS-001</product_id><quantity>2</quantity></cart_items> <cart_items><product_id>KB-004</product_id><quantity>1</quantity></cart_items> สังเกตว่าเอลิเมนต์ <cart_items> จะปรากฏซ้ำกันสองครั้งสำหรับแต่ละอ็อบเจกต์ในอาร์เรย์

จะกำหนด Root Element เองได้อย่างไร? โดยปกติแล้ว เครื่องมือจะมีช่องให้กรอกชื่อ Root Element ที่คุณต้องการโดยเฉพาะ เพียงแค่คุณพิมพ์ชื่อที่ต้องการลงในช่องนั้น (เช่น data, response, หรือ transaction) ก่อนกดปุ่มแปลง เครื่องมือก็จะใช้ชื่อนั้นเป็นเอลิเมนต์หลักที่ครอบข้อมูลทั้งหมด หากคุณเว้นว่างไว้ เครื่องมือมักจะใช้ชื่อปริยายเช่น root

อักขระพิเศษเช่น & หรือ < จะถูกจัดการอย่างไร? เครื่องมือจะจัดการเรื่องนี้ให้คุณโดยอัตโนมัติเพื่อสร้าง XML ที่ถูกต้อง อักขระที่มีความหมายพิเศษใน XML จะถูกแปลงเป็นสิ่งที่เรียกว่า "entities" ตัวอย่างเช่น & จะกลายเป็น &amp;, < จะกลายเป็น &lt;, และ > จะกลายเป็น &gt; คุณจึงสามารถใส่ข้อมูลที่มีอักขระเหล่านี้ลงใน JSON ได้โดยไม่ต้องกังวล

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

คำถามที่เราตอบบ่อยที่สุด

ทำไมยังต้องแปลงข้อมูลจาก JSON เป็น XML อยู่ ทั้งที่ JSON ก็เป็นที่นิยมกว่า?

ถึงแม้ว่า JSON จะเป็นรูปแบบที่ทันสมัยและนิยมใช้กันอย่างแพร่หลายในปัจจุบัน แต่ก็ยังมีระบบอีกหลายประเภท โดยเฉพาะระบบขององค์กรขนาดใหญ่ (Enterprise Systems), เว็บเซอร์วิสแบบ SOAP, หรือฟีดข้อมูลสำหรับพาร์ทเนอร์บางราย ที่ยังคงใช้ XML เป็นมาตรฐานในการแลกเปลี่ยนข้อมูล ดังนั้นเครื่องมือ "แปลง JSON เป็น XML" จึงยังคงมีความจำเป็นสำหรับนักพัฒนาที่ต้องเชื่อมต่อหรือส่งข้อมูลให้กับระบบเหล่านั้น เพื่อให้การทำงานร่วมกันเป็นไปได้อย่างราบรื่น

ข้อมูลที่เป็น Array ใน JSON จะถูกแปลงเป็น XML ในรูปแบบไหน?

เครื่องมือจะแปลงข้อมูลแต่ละรายการ (item) ใน Array ของ JSON ให้กลายเป็น Element ของ XML ที่มีชื่อซ้ำกันภายใต้ Element แม่เดียวกัน ตัวอย่างเช่น หากคุณมี JSON { "products": [ { "name": "ปากกา" }, { "name": "ดินสอ" } ] } ผลลัพธ์ที่ได้จะเป็น <products><name>ปากกา</name></products><products><name>ดินสอ</name></products> ซึ่งเป็นวิธีมาตรฐานในการแสดงรายการข้อมูลใน XML

จะกำหนดชื่อ Root Element เองสำหรับไฟล์ XML ที่แปลงแล้วได้ไหม?

ทำได้ครับ ในหน้าเครื่องมือจะมีช่องให้กรอก "ชื่อ Root Element" (Root Element Name) โดยปกติจะถูกตั้งค่าเริ่มต้นเป็น <root> คุณสามารถพิมพ์ชื่อที่ต้องการลงไปในช่องนั้นได้เลย เช่น <data> หรือ <items> แล้วเครื่องมือจะใช้ชื่อที่คุณกำหนดเป็น Element หลักที่ห่อหุ้มข้อมูล XML ทั้งหมดโดยอัตโนมัติ

ถ้าใน JSON มีอักขระพิเศษอย่าง '&' หรือ '<' เครื่องมือจะจัดการให้หรือไม่?

ใช่ครับ เครื่องมือจะทำการ Escaping อักขระพิเศษเหล่านี้ให้กลายเป็น XML Entities ที่ถูกต้องให้โดยอัตโนมัติ เพื่อป้องกันไม่ให้โครงสร้างของไฟล์ XML ที่ได้ผิดเพี้ยนไป ตัวอย่างเช่น เครื่องหมาย & จะถูกแปลงเป็น &amp; และ < จะถูกแปลงเป็น &lt; ทำให้คุณสามารถนำไฟล์ XML ไปใช้งานต่อกับระบบอื่นได้อย่างปลอดภัย

จะเกิดอะไรขึ้นถ้า Key ใน JSON ขึ้นต้นด้วยตัวเลขหรือมีอักขระที่ใช้ในชื่อ Element ไม่ได้?

ตามมาตรฐานของ XML ชื่อ Element ไม่สามารถขึ้นต้นด้วยตัวเลขหรือมีอักขระพิเศษบางตัวได้ หากเครื่องมือพบ Key ใน JSON ที่ไม่ถูกต้องตามหลักการนี้ (เช่น "1user" หรือ "user-name") การแปลงอาจเกิดข้อผิดพลาดหรือให้ผลลัพธ์ที่ไม่สมบูรณ์ ดังนั้น วิธีที่ดีที่สุดคือควรตรวจสอบและแก้ไข Key ในไฟล์ JSON ต้นทางให้ถูกต้องตามหลักการตั้งชื่อของ XML ก่อนทำการแปลงเสมอ (เช่น เปลี่ยนเป็น "user1" หรือ "userName")

ค่า `null` ใน JSON จะถูกแปลงเป็นอะไรใน XML?

เมื่อเครื่องมือเจอค่า null ในไฟล์ JSON จะทำการแปลงเป็น Element ที่ว่างเปล่าใน XML ครับ ตัวอย่างเช่น { "description": null } จะถูกแปลงเป็น <description></description> ซึ่งเป็นการแสดงว่ามี Element นี้อยู่ แต่ไม่มีค่าข้อมูลใดๆ อยู่ภายใน

ตัวเลือก 'คำนำหน้าสำหรับ Attribute' (Attribute Prefix) ใช้ทำอะไร?

ตัวเลือกนี้มีไว้เพื่อระบุว่า Key ใน JSON ที่ขึ้นต้นด้วยคำนำหน้าที่เรากำหนด ควรจะถูกแปลงเป็น Attribute ของ Element แทนที่จะเป็น Element ย่อยครับ ตัวอย่างเช่น หากคุณตั้งค่า Prefix เป็น @ และมี JSON { "user": { "@id": "123", "name": "สมชาย" } } ผลลัพธ์ที่ได้จะเป็น <user id="123"><name>สมชาย</name></user> ซึ่งมีประโยชน์มากในการสร้าง XML ที่มีโครงสร้างซับซ้อนตามที่ระบบปลายทางต้องการ

แหล่งอ้างอิง

  1. Extensible Markup Language (XML) 1.0 · W3C
  2. The JavaScript Object Notation (JSON) Data Interchange Format (RFC 8259) · IETF · 2017