สารจากนักเขียน
JSON (JavaScript Object Notation) และ XML (Extensible Markup Language) คือรูปแบบการแลกเปลี่ยนข้อมูลสองประเภทใหญ่ ๆ ที่ใช้กันอย่างแพร่หลาย ถึงแม้จะมีความใกล้เคียงกันมาก แต่ก็ไม่ได้เหมือนกันซะทีเดียว ทั้งในเรื่องของโครงสร้าง การใช้งาน และความปลอดภัย โดยบทความนี้เราจะพาไปดูข้อเปรียบเทียบต่าง ๆ ของ JSON และ XML เพื่อช่วยให้ทุกคนสามารถตัดสินใจเลือกได้ว่าระหว่าง JSON กับ XML ตัวไหนเหมาะกับงานของเรามากที่สุดครับ
JSON คืออะไร?
เรามาดูกันก่อนว่า JSON คืออะไร JSON คือรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบา ซึ่งทั้งคนและคอมพิวเตอร์สามารถเขียนและอ่านได้ง่าย ถึงแม้ว่า JSON จะมาจาก JavaScript แต่ไม่ได้ขึ้นอยู่กับแค่ภาษา JavaScript หมายความว่า เราสามารถใช้กับภาษาอื่น ๆ ได้ด้วยเช่นกัน และจะพบเห็นได้บ่อยในการใช้ JSON เป็น Output ของ API
XML คืออะไร?
XML เป็นภาษามาร์กอัปที่ออกแบบมาเพื่อจัดเก็บและแลกเปลี่ยนข้อมูล โดยทั่วไป ตัว XML จะมีรายละเอียดมากกว่าเมื่อเทียบกับ JSON โดย XML แต่จะไม่ได้เชื่อมโยงกับภาษาการเขียนโปรแกรมใด ๆ ทำให้สามารถใช้ได้กับแอปพลิเคชันและแพลตฟอร์มที่หลากหลาย นอกจากนี้ XML ยังช่วยให้เราสามารถสร้างแท็กแบบกำหนดเองได้ เพื่อกำหนดข้อมูล XML นั้น ๆ โดยเฉพาะ สิ่งนี้ทำให้นักพัฒนาและนักออกแบบสามารถทำงานร่วมกันได้ง่ายขึ้น
โครงสร้างของ JSON และ XML
JSON จะมีการเก็บค่าข้อมูลในรูปแบบของ key: value โดยจะมีข้อมูลอยู่ภายใต้เครื่องหมายปีกกาและมีการคั่นระหว่าง key ด้วยลูกน้ำดังนี้ และด้วยความที่มีโครงสร้างที่ไม่ซับซ้อน ทำให้ประโยชน์ที่ตามมาคือสามารถนำไปใช้งานได้เร็ว โดยเฉพาะเมื่อนำไปใช้ใน JavaScript จะสามารถแปลงเป็น JavaScript Object และใช้งานได้ทันที
{
"name": "John Doe",
"age": 30,
"city": "New York"
}
ส่วน XML จะมีการเก็บค่าในรูปแบบโครงสร้าง ตามด้วย tag เปิดและปิดเหมือนกับภาษา HTML ทำให้การเก็บข้อมูลแต่ละตัวต้องใช้พื้นที่มากขึ้น โดยเฉพาะข้อมูลขนาดใหญ่ที่มีความความซับซ้อน เพราะจะมี tag เปิดและปิดเต็มไปหมดโดยการนำไปใช้งานกับ JavaScript ก็ยุ่งยากและช้ากว่า เพราะจะต้องดึงข้อมูล XML Document และ loop เข้าไปทำการเก็บข้อมูลออกมาใส่ตัวแปรไว้อีกที
<person>
<name>John Doe</name>
<age>30</age>
<city>New York</city>
</person>
ชนิดข้อมูล
JSON รองรับกับ Data Type หลายประเภท ไม่ว่าจะเป็น strings, numbers, booleans, arrays, objects และ null แต่จะไม่มีการสนับสนุนที่ชัดเจนสำหรับชนิดข้อมูลที่ซับซ้อนอย่าง วันที่ และข้อมูลจำพวกไบนารี่
XML ไม่ได้มีข้อกำหนดเกี่ยวกับชนิดข้อมูล ทำให้สามารถแสดงข้อมูลใด ๆ ก็ได้เป็นข้อความภายใต้ Element แต่อาจจะต้องมีการเพิ่ม Attribute เพิ่มเติม สำหรับการระบุชนิดของข้อมูล
การใช้งาน
โดยทั่วไป JSON ใช้สำหรับการติดต่อกันผ่าน API, Configuration files และการแลกเปลี่ยนข้อมูลระหว่าง Web Services และ JSON เป็นที่นิยมในเว็บไซต์เนื่องจากขนาดไฟล์ที่เล็ก ความเรียบง่ายของโครงสร้าง และความสะดวกในการใช้งานใน Programming languages สมัยใหม่
ส่วน XML ที่มีความซับซ้อนมากขึ้นในการเขียนและอ่าน และแสดงผลในไฟล์ขนาดใหญ่ มักใช้สำหรับข้อมูลแบบ document-oriented รวมถึง HTML, Configuration files และการจัดเก็บข้อมูลในฐานข้อมูล อย่าง XML databases
ความปลอดภัย
National Institute of Standards and Technology (NIST) ได้มีการศึกษาในจุดนี้และค้นพบว่า XML มีความปลอดภัยมากกว่า JSON โดยวิธีการศึกษาใช้ทั้งชุดข้อมูลโอเพ่นซอร์สและชุดข้อมูลที่เป็นกรรมสิทธิ์ซึ่งส่งผ่านช่องทางที่ไม่ปลอดภัยทั้งคู่ แต่ XML มีแนวโน้มที่จะถูกโจมตีมากกว่า JSON ทั้งนี้ทั้งนั้นก็มีความเสี่ยงที่จะถูกโจมตีทั้งคู่อยู่ดี
และ NIST ยังพิจารณาด้วยว่าผู้โจมตีสามารถแก้ไขหรือลบข้อมูลในรูปแบบใดรูปแบบหนึ่งได้ง่ายเพียงใด ตลอดจนสิ่งที่จะเกิดขึ้นหากผู้โจมตีสามารถเปลี่ยนโครงสร้างของข้อมูลได้เอง เช่น การเปลี่ยนลำดับขององค์ประกอบภายใน เอกสาร XML หรือการเพิ่มองค์ประกอบที่ไม่ได้มีอยู่ในตอนแรก
สรุปความแตกต่างระหว่าง JSON กับ XML
JSON
- JavaScript Object Notation
- เปิดตัวในปี 2001
- ใช้โครงสร้างเป็นแบบ key, value
- มี Syntax ที่ไม่ซับซ้อน ง่ายต่อการอ่านและเขียน
- การสร้าง Document, Schema สามารถทำได้ง่ายและมีความยืดหยุ่นมากกว่า
- รองรับชนิดข้อมูลประเภท Number, Object, String และ Boolean
- มีขนาดไฟล์ที่เล็กและมีการส่งข้อมูลที่เร็ว
XML
- Extensible Markup Language
- เปิดตัวในปี 1998
- เก็บข้อมูลในโครงสร้างแบบต้นไม้ที่มี namespaces สำหรับประเภทข้อมูลที่แตกต่างกัน
- ทดแทนตัวอักษรบางตัวด้วย entity reference ซึ่งทำให้ Syntax มีความเยิ่นเย้อ
- การสร้าง Document, Schema มีความซับซ้อนและยืดหยุ่นน้อยกว่า
- รองรับทุกชนิดข้อมูลเช่นเดียวกับ JSON และประเภทอื่น ๆ เพิ่มเติม เช่น วันที่ ภาพ และ namespaces
- โครงสร้างแท็ก XML มีความซับซ้อนในการเขียนและอ่าน และมีขนาดไฟล์ที่ใหญ่
บทส่งท้าย
JSON และ XML ต่างก็เป็นรูปแบบการแลกเปลี่ยนข้อมูล ซึ่งทั้งคู่ก็จะมีจุดแข็งและจุดอ่อนของตัวเอง การเลือกใช้งานระหว่าง JSON และ XML ควรขึ้นอยู่กับข้อกำหนดเฉพาะแต่ละ Project ของเรา ด้วยความเรียบง่ายของ JSON ทำให้เป็นตัวเลือกยอดนิยมสำหรับการแลกเปลี่ยนข้อมูลบนเว็บ ในขณะที่ความสามารถในการอ่านและความยืดหยุ่นของ XML ทำให้กลายเป็นคู่แข่งที่แข็งแกร่งสำหรับข้อมูลเชิงเอกสาร หวังว่าบทความนี้จะช่วยเพิ่มความเข้าใจและช่วยให้ทุกคนตัดสินใจได้อย่างมีประสิทธิภาพสำหรับการจัดการข้อมูลของทุกคนนะครับ ไว้เจอกันใหม่บทความหน้าครับ สวัสดีครับ
อ้างอิง
- JSON เทียบกับ XML – ความแตกต่างระหว่างการแสดงข้อมูล, สืบค้นเมื่อ 10 ตุลาคม 2566
จาก: https://aws.amazon.com/th/compare/the-difference-between-json-xml/ - JSON กับ XML, สืบค้นเมื่อ 12 ตุลาคม 2566
จาก: https://appmaster.io/th/blog/json-kab-xml - เข้าใจ JSON ใน 5 นาที, สืบค้นเมื่อ 12 ตุลาคม 2566
จาก: https://www.borntodev.com/2020/02/28/what-is-json/