เลือกภาษา

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

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

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 ที่มีโครงสร้างซับซ้อนตามที่ระบบปลายทางต้องการ