JSON คืออะไร? ทำไมต้องใช้?
ในโลกของการพัฒนา API และ Web Services, JSON (JavaScript Object Notation) เป็นสิ่งที่ขาดไม่ได้เลยครับ ในบทนี้ เราจะมาทำความเข้าใจกันว่า JSON คืออะไร มีโครงสร้างอย่างไร และทำไมมันถึงได้รับความนิยมอย่างมากในการรับส่งข้อมูลระหว่าง Client และ Server
JSON คืออะไร?
JSON คือรูปแบบข้อมูล (data format) ที่ใช้ในการแลกเปลี่ยนข้อมูลระหว่างระบบต่างๆ โดยมีจุดเด่นคือ อ่านง่าย เข้าใจง่าย และเครื่องคอมพิวเตอร์สามารถประมวลผลได้อย่างรวดเร็ว ถึงแม้ชื่อจะบอกว่าเป็น JavaScript Object Notation แต่จริงๆ แล้ว JSON เป็นรูปแบบข้อมูลที่เป็นกลาง (language-agnostic) นั่นหมายความว่าสามารถใช้งานได้กับภาษาโปรแกรมมิ่งหลากหลายภาษา ไม่ว่าจะเป็น PHP, JavaScript, Python, Java และอื่นๆ
ลองนึกภาพว่าคุณต้องการส่งข้อมูลเกี่ยวกับผู้ใช้ (User) ไปยัง Server ข้อมูลนี้อาจประกอบด้วย ชื่อ, นามสกุล, อีเมล และอายุ JSON จะช่วยจัดระเบียบข้อมูลเหล่านี้ให้อยู่ในรูปแบบที่ชัดเจนและเป็นมาตรฐาน
โครงสร้างของ JSON
JSON มีโครงสร้างพื้นฐานที่เรียบง่าย ประกอบด้วยสองส่วนหลักๆ คือ:
- Objects: คือชุดของคู่ key-value (คีย์-ค่า) ที่อยู่ในเครื่องหมายปีกกา
{}แต่ละคู่ key-value จะถูกคั่นด้วยเครื่องหมายจุลภาค, - Arrays: คือรายการของข้อมูล (data elements) ที่อยู่ในเครื่องหมายวงเล็บเหลี่ยม
[]ข้อมูลแต่ละตัวใน Array จะถูกคั่นด้วยเครื่องหมายจุลภาค,
Key (คีย์): คือชื่อของข้อมูล (property name) ที่เป็น String เสมอ และอยู่ในเครื่องหมาย Double Quote " "
Value (ค่า): คือค่าของข้อมูลที่สอดคล้องกับ Key ค่าของ Value สามารถเป็นได้หลายประเภท ดังนี้:
- String: ข้อความที่อยู่ในเครื่องหมาย Double Quote
" "เช่น"John" - Number: ตัวเลข (Integer หรือ Floating-point) เช่น
25,3.14 - Boolean: ค่าความจริง (True หรือ False) เช่น
true,false - Null: ค่าว่าง เช่น
null - Object: JSON Object ซ้อนกัน (Nested Object)
- Array: JSON Array
ตัวอย่าง JSON Object:
{
"firstName": "John",
"lastName": "Doe",
"age": 30,
"email": "john.doe@example.com",
"isStudent": false,
"address": {
"street": "123 Main St",
"city": "Anytown",
"zipCode": "12345"
},
"hobbies": ["reading", "hiking", "coding"]
}
ในตัวอย่างข้างต้น:
firstName,lastName,age,email,isStudent,address, และhobbiesคือ Keys"John","Doe",30,"john.doe@example.com",false, JSON Object ของ Address และ JSON Array ของ Hobbies คือ Values
ตัวอย่าง JSON Array:
[
{"name": "Apple", "color": "Red"},
{"name": "Banana", "color": "Yellow"},
{"name": "Grapes", "color": "Green"}
]
ในตัวอย่างนี้ เรามี JSON Array ที่เก็บ JSON Objects ของผลไม้แต่ละชนิดไว้
ทำไมต้องใช้ JSON ใน API?
JSON ได้รับความนิยมอย่างมากในการพัฒนา API และ Web Services ด้วยเหตุผลหลายประการ ดังนี้:
- อ่านง่ายและเข้าใจง่าย: โครงสร้างของ JSON นั้นเรียบง่าย ทำให้ทั้งมนุษย์และเครื่องจักรสามารถอ่านและเข้าใจข้อมูลได้อย่างรวดเร็ว
- น้ำหนักเบา: JSON มีขนาดเล็กกว่า XML (Extensible Markup Language) ซึ่งเป็นอีกรูปแบบข้อมูลที่นิยมใช้กัน ทำให้การรับส่งข้อมูลทำได้รวดเร็วและประหยัด Bandwidth
- รองรับหลายภาษาโปรแกรมมิ่ง: JSON เป็นรูปแบบข้อมูลที่เป็นกลาง สามารถใช้งานได้กับภาษาโปรแกรมมิ่งหลากหลายภาษา ทำให้ง่ายต่อการ Integrate ระบบต่างๆ
- ง่ายต่อการ Parse: ภาษาโปรแกรมมิ่งส่วนใหญ่มี Library หรือ Function ที่ช่วยในการ Parse (แปลง) JSON String เป็น Object หรือ Array ได้อย่างง่ายดาย
- เป็นมาตรฐาน: JSON เป็นรูปแบบข้อมูลที่เป็นมาตรฐาน ทำให้การทำงานร่วมกันระหว่างทีมพัฒนาต่างๆ เป็นไปอย่างราบรื่น
เปรียบเทียบ JSON กับ XML:
ลองดูตัวอย่างข้อมูลผู้ใช้เดียวกันในรูปแบบ JSON และ XML:
JSON:
{
"firstName": "John",
"lastName": "Doe"
}
XML:
<user>
<firstName>John</firstName>
<lastName>Doe</lastName>
</user>
จากตัวอย่าง จะเห็นได้ว่า JSON มีขนาดเล็กกว่าและอ่านง่ายกว่า XML อย่างชัดเจน นอกจากนี้ XML ยังมีความซับซ้อนในการ Parse มากกว่า JSON อีกด้วย
JSON ใน PHP
PHP มีฟังก์ชันที่รองรับการทำงานกับ JSON อย่างครบถ้วน ได้แก่:
json_encode(): ใช้สำหรับแปลง PHP Array หรือ Object เป็น JSON Stringjson_decode(): ใช้สำหรับแปลง JSON String เป็น PHP Array หรือ Object
เราจะมาดูตัวอย่างการใช้งานฟังก์ชันเหล่านี้ในบทถัดไป
สรุป
JSON เป็นรูปแบบข้อมูลที่สำคัญอย่างยิ่งในการพัฒนา API และ Web Services ด้วยโครงสร้างที่เรียบง่าย น้ำหนักเบา และรองรับหลายภาษาโปรแกรมมิ่ง ทำให้ JSON เป็นตัวเลือกที่ได้รับความนิยมอย่างแพร่หลาย ในบทถัดไป เราจะมาเรียนรู้วิธีการสร้าง JSON String ใน PHP และส่ง JSON Response กลับไปยัง Client