moonlightkzในยุคปัจจุบันที่การสื่อสาร และโครงสร้างพื้นฐานทางเทคโนโลยีเปลี่ยนผ่านเข้าสู่โลกดิจิทัลอย่างเต็มรูปแบบ ข้อมูล (Data) ได้กลายเป็นหัวใจสำคัญที่สุดในการขับเคลื่อนทุกแอปพลิเคชัน และบริการ ไม่ว่าจะเป็นการกดสั่งซื้อสินค้าในแอปพลิเคชัน e-Commerce, การเช็กสภาพอากาศบนสมาร์ตโฟน, การทำธุรกรรมทางการเงินผ่าน Mobile Banking ไปจนถึงการสตรีมวิดีโอคุณภาพสูง เบื้องหลังความราบรื่น และต่อเนื่องของบริการเหล่านี้ คือการรับส่ง และแลกเปลี่ยนข้อมูลนับพันล้านชุดต่อวินาทีระหว่างเครื่อง เซิร์ฟเวอร์ (Server) และอุปกรณ์ของผู้ใช้งาน หรือ ไคลเอ็นต์ (Client) ที่ตั้งอยู่ต่างสถานที่กัน
ความท้าทายที่สำคัญที่สุดอย่างหนึ่งของวงการพัฒนาซอฟต์แวร์ตั้งแต่ยุคเริ่มต้นคือ "การหาภาษากลางในการสื่อสาร" เนื่องจาก ระบบปฏิบัติการ (OS), ภาษาคอมพิวเตอร์ (Programming Languages) และฐานข้อมูลที่แต่ละระบบใช้นั้น มีความแตกต่างกันอย่างสิ้นเชิง ตัวอย่างเช่น เซิร์ฟเวอร์หลังบ้านอาจเขียนด้วย ภาษา Python หรือ Java ในขณะที่แอปพลิเคชันหน้าบ้านอาจพัฒนาด้วย ภาษา JavaScript, ภาษา Swift บน ไอโอเอส (iOS) หรือ Kotlin บน แอนดรอยด์ (Android) การที่จะทำให้ระบบต่างที่แตกต่างกันเหล่านี้ สามารถเข้าใจ และแลกเปลี่ยนโครงสร้างข้อมูลชุดเดียวกันได้ จึงต้องมี "ฟอร์แมตมาตรฐานสำหรับจัดรูปแบบข้อมูล" (Data-Interchange Format) เข้ามาทำหน้าที่เป็นตัวกลาง
ในอดีต โลกของการพัฒนาระบบไอทีมักพึ่งพาฟอร์แมตอย่าง XML (Extensible Markup Language) เป็นมาตรฐานหลัก ซึ่งแม้ว่า XML จะมีความยืดหยุ่นและรองรับโครงสร้างซับซ้อนได้ดี แต่ก็แลกมาด้วยข้อเสียขนาดใหญ่ นั่นคือ โครงสร้างซ้ำซ้อน, มีขนาดไฟล์ที่ใหญ่เกินความจำเป็นจากการใช้แท็กเปิด-ปิด () และใช้ทรัพยากรของระบบสูงในการอ่าน และประมวลผล (Parsing) ส่งผลให้เกิดความล่าช้าในการรับส่งข้อมูล และใช้แบนด์วิธเครือข่ายอย่างเปลืองเปล่า
ด้วยการเติบโตอย่างก้าวกระโดดของ เว็บแอปพลิเคชัน (Web Application) ในยุค Web 2.0 ร่วมกับความแพร่หลายของเทคโนโลยี AJAX (Asynchronous JavaScript and XML) และ ส่วนต่อประสานโปรแกรมประยุกต์ (API) RESTful API ความต้องการฟอร์แมตข้อมูลชนิดใหม่ที่ "เบา รวดเร็ว และประมวลผลได้ง่าย" จึงกลายเป็นเรื่องเร่งด่วน นี่คือจุดกำเนิดของ JSON (JavaScript Object Notation) รูปแบบการรับส่งข้อมูลที่ถูกออกแบบมาให้มนุษย์สามารถอ่านเข้าใจได้ง่ายเหมือนข้อความทั่วไป ในขณะเดียวกันก็เรียบง่ายพอที่โปรแกรมคอมพิวเตอร์ทุกภาษาสามารถตีความได้อย่างรวดเร็ว
ปัจจุบัน JSON ได้ก้าวขึ้นมาจากฟอร์แมตทางเลือก จนกลายเป็น "มาตรฐานหลักโดยสมบูรณ์" (De Facto Standard) สำหรับการแลกเปลี่ยนข้อมูลบนเครือข่ายอินเทอร์เน็ตทั่วโลก ไม่เพียงแต่ใช้ในเว็บ API เท่านั้น แต่ยังขยายขอบเขตไปถึงการจัดเก็บข้อมูลในฐานข้อมูล NoSQL ยุคใหม่, การจัดการไฟล์ตั้งค่าระบบ (Configuration Files), รวมถึงโครงสร้างพื้นฐานด้าน การประมวลผลแบบคลาวด์ (Cloud Computing)
บทความนี้จะพาทุกท่านไปเจาะลึกทำความเข้าใจทุกมิติของ JSON ตั้งแต่โครงสร้างพื้นฐาน การทำงาน ไปจนถึงประวัติความเป็นมาและเหตุผลที่ทำให้มันกลายเป็นเทคโนโลยีเปลี่ยนโลกในปัจจุบัน ...
JSON ย่อมาจาก JavaScript Object Notation มันเป็นมาตรฐานฟอร์แมตจัดรูปแบบข้อมูลคอมพิวเตอร์ชนิดข้อความ (Text-based Data Interchange Format) ที่ออกแบบมาให้มีน้ำหนักเบา อ่านง่ายสำหรับมนุษย์ และประมวลผลได้รวดเร็วสำหรับเครื่องคอมพิวเตอร์ โดยถูกใช้งานเป็นหลักในการแลกเปลี่ยนข้อมูลระหว่างระบบ เช่น การส่งข้อมูลจากเว็บเซิร์ฟเวอร์ไปยังเว็บเบราว์เซอร์ หรือการรับส่งข้อมูลผ่าน API ของแอปพลิเคชันต่าง ๆ
หากวิเคราะห์นิยาม และคุณสมบัติของ JSON อย่างละเอียด จะประกอบด้วยหัวใจสำคัญ 4 ด้าน ดังนี้
แม้ชื่อจะมีคำว่า JavaScript อยู่ แต่ตัว JSON เองเป็นเพียง "ข้อความอักษรธรรมดา" (PlainText) ไม่ใช่โค้ดสคริปต์ที่สามารถรันคำสั่งสั่งงาน หน่วยประมวลผลกลาง (CPU) ได้โดยตรง การที่มันเป็น Text-based ทำให้ JSON มีข้อดีสำคัญหลายอย่าง ดังนี้
ข้อความธรรมดาสามารถส่งผ่าน โปรโตคอล (Protocol) เครือข่ายอย่าง HTTP / HTTPS หรือ WebSocket ได้อย่างราบรื่น โดยไม่ติดปัญหาความแตกต่างของประเภทเครื่องคอมพิวเตอร์ สถาปัตยกรรม CPU หรือระบบปฏิบัติการ
ไวยากรณ์ของ JSON มีรากฐานมาจากโครงสร้าง Object ของ ภาษา JavaScript ตามมาตรฐาน ECMA-262 3rd Edition แต่เนื่องจากโครงสร้างการเก็บข้อมูลแบบ Key-Value และ List เป็นโครงสร้างพื้นฐานที่มีในภาษาโปรแกรมมิ่งเกือบทุกภาษาในโลก ภาษาอย่าง Python, Java, ภาษา C#, ภาษา C++, ภาษา PHP, ภาษา Go หรือ ภาษา Rust จึงมี ไลบรารี (Library) มาตรฐานสำหรับอ่าน (Parse) และสร้าง (Generate) ข้อมูล JSON ได้โดยทันที
ความฉลาดในการออกแบบของ Douglas Crockford ผู้คิดค้น JSON คือการตัดส่วนที่ไม่จำเป็นออกทั้งหมด และเหลือไว้เพียงโครงสร้างข้อมูลพื้นฐานสากล 2 รูปแบบหลัก ซึ่งครอบคลุมการเก็บข้อมูลแทบทุกประเภทในโลกซอฟต์แวร์
ในแต่ละภาษาโปรแกรมมิ่ง โครงสร้างนี้เรียกต่างกัน เช่น Object (JavaScript), Dictionary (Python), Hash Table / Map (Java/C#) หรือ Associative Array (PHP) แต่ในไวยากรณ์ JSON โครงสร้างนี้จะถูกครอบด้วยเครื่องหมายปีกกา "{ }" และเชื่อมข้อมูลด้วย ":"
ในภาษาโปรแกรมมิ่งเรียกกันว่า Array, List, Vector หรือ Sequence ส่วนในไวยากรณ์ JSON โครงสร้างนี้ครอบด้วยเครื่องหมายวงเล็บเหลี่ยม "[ ]" และแยกสมาชิกแต่ละตัวด้วยเครื่องหมายจุลภาค ","
เพื่อป้องกันความสับสนในการตีความข้อมูล JSON จึงมีกฎเกณฑ์ไวยากรณ์ (Syntax) ที่เข้มงวดกว่าไวยากรณ์ของ JavaScript ทั่วไป
สรุปได้ว่า JSON เป็นรูปแบบการจัดเก็บ และแลกเปลี่ยนข้อมูลที่เป็นข้อความธรรมดา แต่มีโครงสร้างที่เป็นระเบียบเรียบร้อย ทำหน้าที่เป็นเสมือน "พาสปอร์ตข้อมูล" ที่ช่วยให้ระบบต่างภาษา หรือต่างแพลตฟอร์ม สามารถส่งผ่าน และอ่านข้อมูลชุดเดียวกันได้อย่างถูกต้องแม่นยำ และไร้รอยต่อ
ตัวอย่างข้อความ JSON ที่ถูกต้องตามมาตรฐาน
{
"title": "เจาะลึก JSON",
"author": "Tech Editor",
"isPublished": true, "views": 1500,
"tags": ["JSON", "API", "Web Development"],
"metadata": {
"language": "th",
"version": 1.0 }
}

ภาพจาก : https://www.hostinger.com/tutorials/what-is-json/
โครงสร้างของ JSON สร้างขึ้นจากชนิดข้อมูลหลัก (Data Types) ที่เรียบง่าย สามารถแบ่งได้เป็น 2 โครงสร้างหลัก และ 6 ชนิดข้อมูลย่อย
{
"name": "Somchai",
"age": 25
}
Array (อาร์เรย์): เป็นลำดับของข้อมูล อยู่ในเครื่องหมายวงเล็บเหลี่ยม "[ ]" สามารถบรรจุข้อมูลได้หลายประเภท และใช้เครื่องหมายจุลภาค "," แยกสมาชิก
{
"skills": ["JavaScript", "Python", "SQL"]
}
ข้อมูลที่สามารถเก็บใน Value ของ JSON ได้ มีดังนี้
ทั้งนี้ JSON ไม่รองรับการเก็บ ฟังก์ชัน (Functions), วันที่ (Date Object ดั้งเดิม), หรือค่า undefined

ภาพจาก : https://www.geeksforgeeks.org/javascript/json/
การทำงานของ JSON อาศัยกระบวนการแปลงข้อมูล 2 ขั้นตอนหลัก ได้แก่ Serialization และ Deserialization
เมื่อแอปพลิเคชันต้องการส่งข้อมูล เช่น วัตถุใน ภาษา JavaScript / ภาษา Python โปรแกรมจะทำการแปลงวัตถุนั้นให้กลายเป็นข้อความ JSON (JSON String) โดยใน JavaScript ใช้ฟังก์ชัน JSON.stringify()
ข้อความ JSON ถูกส่งผ่านโปรโตคอลเครือข่าย เช่น HTTP / HTTPS ในรูปแบบไฟล์ข้อความธรรมดา
เมื่อผู้รับ ฝั่ง Client หรือ Server ได้รับข้อความ JSON จะใช้ตัวแปลง (Parser) ตีความข้อความนั้นกลับมาเป็น Object ดั้งเดิมของภาษานั้น ๆ เพื่อนำไปใช้งานต่อ ซึ่งใน JavaScript ใช้ฟังก์ชัน JSON.parse()
| คุณสมบัติ | JSON | XML | HTML |
| ชื่อเต็ม | JavaScript Object Notation | Extensible Markup Language | HyperText Markup Language |
| วัตถุประสงค์หลัก | ใช้สำหรับแลกเปลี่ยนข้อมูล | ใช้จัดเก็บ ขนส่ง และอธิบายโครงสร้างข้อมูล | ใช้สำหรับแสดงผลหน้าเว็บไซต์ |
| โครงสร้างข้อมูล | คู่ Key-Value และ Arrays | แท็กซ้อนกันเป็นลำดับชั้น | แท็กที่กำหนดไว้แล้วเพื่อจัดรูปแบบหน้าเว็บ |
| ขนาดไฟล์และประสิทธิภาพ | เล็ก กะทัดรัด ประมวลผลได้รวดเร็วมาก | ใหญ่กว่า เนื่องจากมีแท็กปิดสม่ำเสมอ | มีขนาดปานกลาง ขึ้นอยู่กับโครงสร้าง HTML |
| ความสะดวกในการอ่าน | อ่านเข้าใจง่าย โครงสร้างใสสะอาด | อ่านยากกว่าเล็กน้อยจากความซ้ำซ้อนของแท็ก | อ่านง่ายสำหรับการจัดโครงสร้างเว็บ |
| การรองรับ Data Types | รองรับ String, Number, Boolean, Array, Null, Object | ข้อมูลทั้งหมดมองเป็น Text/String (ต้องอธิบายด้วย Schema) | ไม่มีระบบ Data Type (แสดงผลเป็นองค์ประกอบเว็บ) |
| การใช้งานหลัก | REST APIs, Web/Mobile Apps, NoSQL Databases | ระบบป้อนข้อมูลองค์กร (Enterprise), Document Systems, SOAP | การสร้างโครงสร้าง และเนื้อหาของเว็บไซต์ |
Douglas Crockford และ Chip Morningstar ได้คิดค้นฟอร์แมต JSON ขึ้นในปี ค.ศ. 2001 (พ.ศ. 2544) เพื่อแก้ปัญหาการรับส่งข้อมูลแบบเรียลไทม์ระหว่าง Server กับ Browser โดยไม่ต้องพึ่งพาปลั๊กอินอย่าง Flash หรือ Java Applets
เนื่องจากมันใช้โครงสร้างวัตถุใน JavaScript เลยถูกตั้งชื่อว่า JSON (JavaScript Object Notation)
มีการเปิดตัวเว็บไซต์ json.org เพื่อกำหนดข้อกำหนดมาตรฐานแรก และเผยแพร่ให้ใช้งานได้อย่างเสรี
Yahoo! ได้เริ่มให้บริการ Web Services ด้วยรูปแบบ JSON ประกอบกับการเติบโตของเทคโนโลยี AJAX ในยุคนั้น ทำให้นักพัฒนาหันมาใช้ JSON แทน XML เนื่องจากประมวลผลได้เร็วกว่ามาก
JSON กลายเป็นเสาหลักสำคัญของการพัฒนาซอฟต์แวร์และเว็บแอปพลิเคชันในปัจจุบัน ด้วยคุณสมบัติเด่นในเรื่องความกะทัดรัด, อ่านง่าย, ประมวลผลรวดเร็ว และความสามารถในการทำงานร่วมกับภาษาโปรแกรมต่าง ๆ ได้อย่างราบรื่น แม้ว่าจะมีข้อจำกัดบางประการ เช่น การไม่รองรับคอมเมนต์ หรือฟีเจอร์การตรวจสอบ Schema ที่ไม่เข้มงวดเท่า XML แต่ความเรียบง่าย และประสิทธิภาพสูงทำให้ JSON ยังคงเป็นตัวเลือกอันดับหนึ่งในการรับส่งข้อมูลผ่าน API และการพัฒนาแอปพลิเคชันยุคใหม่อย่างแท้จริง
ปฏิเสธไม่ได้ว่า JSON (JavaScript Object Notation) ได้กลายมาเป็นหนึ่งในโครงสร้างพื้นฐานทางเทคโนโลยีที่สำคัญที่สุดในยุคดิจิทัล จากจุดเริ่มต้นในฐานะรูปแบบรับส่งข้อมูลทางเลือกเพื่อแก้ปัญหาความเทอะทะของ XML ในยุค Web 2.0 ปัจจุบัน JSON ได้วิวัฒนาการจนก้าวขึ้นมาเป็น "มาตรฐานหลักโดยสมบูรณ์" (De Facto Standard) สำหรับการสื่อสารและแลกเปลี่ยนข้อมูลบนเครือข่ายอินเทอร์เน็ตทั่วโลก
คำสำคัญ »
|
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |