JSON คืออะไร? เข้าใจง่าย พร้อมเหตุผลที่ต้องจัดรูปแบบทุกครั้ง

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

JSON คืออะไร?

JSON ย่อมาจาก JavaScript Object Notation — เป็นรูปแบบการเก็บและส่งข้อมูลที่ออกแบบมาให้อ่านง่ายทั้งสำหรับมนุษย์และคอมพิวเตอร์ แม้ชื่อจะมีคำว่า “JavaScript” แต่ JSON ใช้งานได้กับทุกภาษาโปรแกรมมิ่ง ตั้งแต่ Python, PHP, Java ไปจนถึง Go

ลักษณะของ JSON คือข้อความธรรมดา (plain text) ที่จัดเก็บข้อมูลในรูปแบบ คีย์ : ค่า (key : value) ซ้อนกันเป็นชั้นๆ ได้ ตัวอย่างเช่น:

{
  "name": "สมชาย",
  "age": 28,
  "isEmployee": true,
  "skills": ["JavaScript", "Python", "SQL"]
}

แค่อ่านก็เข้าใจได้เลยว่ามีข้อมูลอะไรบ้าง — นั่นคือจุดแข็งสำคัญของ JSON

ใครสร้าง JSON และมาตรฐานปัจจุบันคืออะไร?

Douglas Crockford มีบทบาทสำคัญในการอธิบายและทำให้ JSON เป็นที่รู้จักในช่วงต้นทศวรรษ 2000 ก่อนที่รูปแบบนี้จะได้รับการกำหนดเป็นมาตรฐานโดย Ecma International และ IETF ในเวลาต่อมา

ปัจจุบันมาตรฐานที่ใช้งานอยู่คือ RFC 8259 ซึ่งประกาศใช้เมื่อเดือนธันวาคม 2017 โดย IETF (Internet Engineering Task Force) — RFC นี้แก้ไขข้อไม่สอดคล้องในมาตรฐานเดิมและเพิ่มแนวทางปฏิบัติตามประสบการณ์จริง

ข้อมูลใน JSON มี 6 ประเภท

JSON รองรับชนิดข้อมูล (data types) ได้ 6 ประเภทเท่านั้น ซึ่งทำให้ JSON เรียบง่ายและพกพาได้ดีข้ามภาษาโปรแกรมมิ่ง:

ประเภท ตัวอย่าง หมายเหตุ
String “สวัสดี” ต้องใช้เครื่องหมายคำพูดคู่ (“) เท่านั้น ห้ามใช้ (‘)
Number 42, 3.14, -7 ทั้งจำนวนเต็มและทศนิยม ไม่มีความแตกต่าง
Boolean true, false พิมพ์เล็กทั้งหมด ไม่ใส่เครื่องหมายคำพูด
Null null แสดงว่าฟิลด์นี้ไม่มีค่า (ว่างเปล่าโดยตั้งใจ)
Array [“ข้าว”, “ก๋วยเตี๋ยว”, “ผัดไทย”] รายการข้อมูลเรียงลำดับ ครอบด้วย [ ]
Object {“city”: “กรุงเทพ”, “zip”: “10110”} ชุดคีย์-ค่า ครอบด้วย { }

จุดที่คนมักสับสนคือ JSON ไม่มีประเภท “integer” หรือ “float” แยกกัน — ตัวเลขทุกชนิดถือเป็น number เดียวกันหมด

ตัวอย่าง JSON จากชีวิตจริง (API Response)

เมื่อแอปมือถือของคุณดึงข้อมูลสินค้าจากร้านค้าออนไลน์ เซิร์ฟเวอร์มักตอบกลับเป็น JSON แบบนี้:

{
  "product_id": 1001,
  "name": "กระเป๋าสะพายข้าง",
  "price": 890.00,
  "in_stock": true,
  "colors": ["ดำ", "น้ำตาล", "แดง"],
  "seller": {
    "id": 55,
    "name": "ShopThai",
    "rating": 4.8
  }
}

แอปสามารถอ่านข้อมูลนี้และแสดงผลบนหน้าจอได้ทันที โดยไม่ต้องแปลงรูปแบบก่อน — นี่คือเหตุผลที่ JSON ได้รับความนิยมอย่างล้นหลามในการพัฒนา API

JSON ต่างจาก XML อย่างไร?

JSON และ XML (Extensible Markup Language) ใช้เก็บข้อมูลแบบมีโครงสร้างได้เหมือนกัน แต่เหมาะกับงานต่างกัน JSON มักพบใน Web API เพราะ syntax กระชับและแปลงเป็น object หรือ array ในภาษาโปรแกรมได้สะดวก ส่วน XML ยังมีประโยชน์กับเอกสาร ระบบที่ใช้ namespace และบริการแบบ SOAP

หัวข้อ JSON XML
รูปแบบ ใช้ object, array และ key-value ใช้ element, attribute และ tag เปิด-ปิด
ความกระชับ มักใช้ข้อความประกอบโครงสร้างน้อยกว่า มี tag และชื่อ element ซ้ำตามโครงสร้าง
การประมวลผล ผลจริงขึ้นกับ parser ภาษา และรูปข้อมูล ผลจริงขึ้นกับ parser ภาษา และรูปข้อมูล
ใช้งานหลัก Web API, Mobile App, Config Enterprise, SOAP, Document

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

JSON Formatter คืออะไร และทำไมต้องใช้?

ปัญหาที่นักพัฒนาเจอบ่อยคือ JSON ที่ได้จาก API มักอยู่ในรูป “บีบอัด” ที่ไม่ขึ้นบรรทัดใหม่ เช่น:

{"product_id":1001,"name":"กระเป๋าสะพายข้าง","price":890.00,"in_stock":true,"colors":["ดำ","น้ำตาล","แดง"]}

อ่านยากมากเมื่อข้อมูลซับซ้อน JSON Formatter คือเครื่องมือที่ช่วยแปลง JSON แบบนั้นให้อ่านง่ายขึ้น พร้อมฟีเจอร์เสริมอีกหลายอย่าง ลองใช้ได้เลยที่ เครื่องมือจัดรูปแบบ JSON ฟรี ของแปลงไฟล์.com

3 ฟีเจอร์หลักของ JSON Formatter

1. Beautify (จัดรูปแบบให้อ่านง่าย)

เพิ่มการย่อหน้าและขึ้นบรรทัดใหม่อัตโนมัติ ทำให้โครงสร้างข้อมูลชัดเจนขึ้น เหมาะสำหรับระหว่างพัฒนาและ debug เมื่อต้องการตรวจสอบว่าข้อมูลจาก API ถูกต้องหรือไม่

2. Validate (ตรวจสอบ syntax)

ตรวจว่า JSON ของคุณถูกต้องตามมาตรฐานหรือไม่ ครอบคลุมข้อผิดพลาดที่พบบ่อย เช่น วงเล็บไม่ครบ ใช้ single quote แทน double quote หรือมี trailing comma ที่ไม่ควรมี ถ้าผิดจะแสดง error message พร้อมบอกตำแหน่ง

3. Minify (บีบอัดลดขนาด)

ลบช่องว่างและการขึ้นบรรทัดที่ไม่จำเป็นออก ทำให้ข้อความสั้นลงโดยไม่เปลี่ยนค่าข้อมูล ส่วนขนาดที่ลดได้จริงขึ้นอยู่กับว่าต้นฉบับจัดย่อหน้าและเว้นช่องว่างไว้มากเพียงใด

ข้อผิดพลาด JSON ที่พบบ่อยที่สุด

ถ้า JSON Validator บอกว่าผิด มักเป็นเพราะ 4 สาเหตุนี้:

  • Trailing comma — ใส่ลูกน้ำหลังค่าสุดท้ายในรายการ เช่น ["ข้าว", "ก๋วยเตี๋ยว",] ลูกน้ำสุดท้ายนั้นผิด
  • Single quote — JSON ใช้เครื่องหมายคำพูดคู่ (“) เท่านั้น เขียน 'name': 'สมชาย' ไม่ได้
  • Key ไม่มีเครื่องหมายคำพูด — คีย์ต้องครอบด้วย ” เสมอ เขียน {name: "สมชาย"} ไม่ได้
  • วงเล็บขาด/เกิน — เปิด { หรือ [ แล้วลืมปิด หรือปิดเกิน ทำให้ JSON ไม่สมบูรณ์

เครื่องมือ JSON Formatter จะจับข้อผิดพลาดเหล่านี้ได้ทันทีและบอกตำแหน่งที่แน่นอน ช่วยประหยัดเวลา debug ได้มาก

JSON ใช้ที่ไหนบ้างในชีวิตประจำวัน?

แม้ไม่ได้เป็นโปรแกรมเมอร์ คุณก็ “ใช้” JSON ทุกวันโดยไม่รู้ตัว:

  • แอปสั่งอาหารและร้านค้าออนไลน์ API อาจใช้ JSON ส่งรายการสินค้า ราคา และสถานะคำสั่งซื้อ
  • แอปแชตและระบบแจ้งเตือน มักใช้ข้อมูลแบบมีโครงสร้างระหว่างแอปกับเซิร์ฟเวอร์ โดย JSON เป็นหนึ่งในรูปแบบที่พบได้บ่อย
  • ระบบการเงิน API สามารถใช้ JSON ส่งข้อมูลที่แอปได้รับอนุญาตให้แสดง ทั้งนี้รูปแบบจริงขึ้นอยู่กับผู้ให้บริการแต่ละราย
  • การตั้งค่า VS Code ไฟล์ settings.json ที่เก็บค่า preferences ของโปรแกรมแก้ไขโค้ด
  • แผนที่และข้อมูลสถานที่ API จำนวนมากส่งพิกัด ชื่อสถานที่ และรายละเอียดเส้นทางในรูปแบบ JSON

FAQ — คำถามที่พบบ่อยเกี่ยวกับ JSON

JSON กับ JavaScript เหมือนกันไหม?

ไม่เหมือนกัน JSON ได้แรงบันดาลใจจาก JavaScript แต่เป็นรูปแบบข้อมูลที่ใช้ได้กับทุกภาษา ส่วน JavaScript คือภาษาโปรแกรมมิ่งเต็มรูปแบบ

ไฟล์ JSON เปิดด้วยอะไรได้บ้าง?

เปิดด้วย Notepad, VS Code, Sublime Text, หรือ browser ธรรมดา ก็ได้ แต่ถ้าต้องการดูโครงสร้างชัดๆ ให้ใช้ JSON Formatter ออนไลน์จะสะดวกกว่ามาก

JSON กับ CSV ต่างกันอย่างไร?

CSV เก็บข้อมูลตาราง 2 มิติแบบเรียบ (แถว x คอลัมน์) ในขณะที่ JSON เก็บข้อมูลซ้อนกันหลายระดับได้ ดังนั้น JSON เหมาะกับข้อมูลที่มีโครงสร้างซับซ้อนกว่า

JSON มีการเข้ารหัสได้ไหม?

JSON เป็น plain text ไม่มีการเข้ารหัสในตัวเอง ถ้าต้องการความปลอดภัยต้องส่งผ่าน HTTPS หรือเข้ารหัสข้อมูลก่อนบรรจุลง JSON

JSON Formatter ปลอดภัยไหม ต้องอัปโหลดไฟล์ไหม?

เครื่องมือ JSON Formatter ของแปลงไฟล์.com ใช้ JavaScript จัดรูปแบบในเบราว์เซอร์และไม่ส่งข้อความ JSON ไปประมวลผลที่เซิร์ฟเวอร์ อย่างไรก็ดี ไม่ควรวางรหัสผ่าน API key หรือข้อมูลลับลงในเครื่องมือออนไลน์บนเครื่องสาธารณะหรือเครื่องที่ไม่ไว้ใจ

JSON รองรับ comment ได้ไหม?

ไม่ได้ — มาตรฐาน JSON ไม่รองรับ comment (// หรือ /* */) ถ้าต้องการเพิ่ม comment ในไฟล์ config ให้ลองดู JSONC (JSON with Comments) ที่ VS Code ใช้แทน

ถ้า JSON ผิด syntax จะรู้ได้ยังไง?

วิธีที่เร็วที่สุดคือวาง JSON เข้า เครื่องมือ Validate JSON — ถ้าผิดจะบอกบรรทัดและตำแหน่งที่ผิดทันที ไม่ต้องอ่านเองทั้งไฟล์

โปรแกรมเมอร์ต้องท่องจำ JSON syntax ไหม?

ไม่จำเป็น กฎหลักมีไม่กี่ข้อ เช่น ใช้ double quote, ไม่มี trailing comma และ key ต้องมี quote ถ้าจำไม่แม่น สามารถใช้ JSON Formatter ตรวจ syntax ก่อนนำข้อมูลไปใช้งานได้

สรุป

JSON คือรูปแบบการเก็บและส่งข้อมูลแบบข้อความที่อ่านได้ทั้งมนุษย์และเครื่อง รองรับค่าพื้นฐานร่วมกับ object และ array จึงเหมาะกับ Web API และไฟล์ตั้งค่าหลายประเภท หากต้องอ่าน ตรวจ syntax หรือย่อข้อความ JSON Formatter จะช่วยลดเวลาจัดรูปแบบด้วยมือได้มาก

ลองใช้ เครื่องมือจัดรูปแบบ JSON ฟรี ของแปลงไฟล์.com ได้เลย ทำงานในเบราว์เซอร์ ไม่ต้องลงโปรแกรม และไม่ส่งข้อความ JSON ไปประมวลผลที่เซิร์ฟเวอร์

สนใจอ่านเพิ่มเติมเกี่ยวกับ PDF คืออะไร, ไฟล์ WebP คืออะไร หรือ JPG กับ PNG ต่างกันอย่างไร ก็มีบทความอธิบายไว้ครบเช่นกัน

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