ความหมายของ JSON และตัวอย่างแรก
JSON ย่อมาจาก JavaScript Object Notation ได้รับความนิยมจาก Douglas Crockford ในช่วงต้นทศวรรษ 2000 ยืมไวยากรณ์มาจาก JavaScript และได้รับการกำหนดเป็นมาตรฐานใน RFC 8259 และ ECMA-404 แม้จะมีชื่อแบบนี้ แต่ JSON ไม่ได้ผูกกับภาษาโปรแกรมใดเลย: แทบทุกภาษาสามารถอ่านและเขียน JSON ได้
ตัวอย่างเอกสาร JSON ขนาดเล็กที่อธิบายข้อมูลของบุคคลหนึ่ง:
{"name": "Ada Lovelace", "born": 1815, "languages": ["English", "French"], "mathematician": true, "spouse": null}
ชนิดข้อมูลใน JSON
| ชนิด | ตัวอย่าง | หมายเหตุ |
|---|---|---|
| String (สตริง) | "Hello" | ข้อความในเครื่องหมายคำพูดคู่ พร้อม escape เช่น \n |
| Number (ตัวเลข) | 42, -3.14, 6.02e23 | ไม่มี NaN, Infinity เลขฐานสิบหก หรือเลขศูนย์นำหน้า |
| Boolean (ค่าความจริง) | true, false | เขียนด้วยตัวพิมพ์เล็กเสมอ |
| Null | null | ค่าว่างหรือค่าที่ไม่ทราบ |
| Object (อ็อบเจ็กต์) | {"key": "value"} | คู่ชื่อ/ค่า โดยชื่อเป็นสตริง |
| Array (อาร์เรย์) | [1, 2, 3] | ลิสต์ของค่าชนิดใดก็ได้ที่มีลำดับ |
JSON ไม่มีชนิดข้อมูลวันที่: โดยทั่วไปวันที่จะเขียนเป็นสตริงตามมาตรฐาน ISO 8601 เช่น "2026-05-01T10:00:00Z"
รูปแบบ JSON: กฎไวยากรณ์
- ข้อมูลเขียนเป็นคู่ชื่อ/ค่า:
"name": "Ada" - ชื่อ (คีย์) และสตริงต้องใช้เครื่องหมายคำพูดคู่เสมอ – ห้ามใช้เครื่องหมายคำพูดเดี่ยว
- แต่ละรายการคั่นด้วยคอมมา และไม่มีคอมมาหลังรายการสุดท้าย
- วงเล็บปีกกา
{ }ใช้สำหรับอ็อบเจ็กต์ ส่วนวงเล็บเหลี่ยม[ ]ใช้สำหรับอาร์เรย์ - ไม่อนุญาตให้มีคอมเมนต์
- ช่องว่างและการขึ้นบรรทัดระหว่างรายการจะถูกละเว้น ข้อมูลเดียวกันจึงย่อขนาดหรือจัดรูปแบบได้
- ข้อความ JSON มีค่าระดับบนสุดเพียงค่าเดียวและเข้ารหัสแบบ UTF-8
ไฟล์ JSON คืออะไร?
ไฟล์ JSON คือไฟล์ข้อความธรรมดาที่มีนามสกุล .json ซึ่งบรรจุเอกสาร JSON หนึ่งชุด มี media type เป็น application/json และควรบันทึกเป็น UTF-8 ไฟล์ JSON ที่พบบ่อย ได้แก่ ข้อมูลที่ส่งออกจากแอปและเว็บไซต์ (เช่น Google Takeout หรือการดาวน์โหลดข้อมูลจากโซเชียลมีเดีย) ไฟล์คอนฟิกอย่าง package.json response ของ API ที่บันทึกลงดิสก์ และชุดข้อมูลสำหรับการวิเคราะห์ เนื่องจากเป็นข้อความธรรมดา การเปิดไฟล์ JSON จึงปลอดภัย – ไฟล์นี้รันโค้ดไม่ได้
วิธีเปิดไฟล์ JSON
| ที่ไหน | วิธีการ |
|---|---|
| Windows | คลิกขวาที่ไฟล์ → เปิดด้วย → Notepad หรือใช้โค้ดเอดิเตอร์อย่าง VS Code การลากไฟล์ไปวางในหน้าต่างเบราว์เซอร์ก็แสดงไฟล์ได้เช่นกัน |
| Mac | เปิดด้วย TextEdit หรือโค้ดเอดิเตอร์ หรือลากไปวางในหน้าต่างเบราว์เซอร์ |
| iPhone และ Android | เปิดจากแอปไฟล์ด้วยโปรแกรมดูข้อความ หรือโหลดเข้า JSON viewer ออนไลน์ – ของเราใช้งานบนมือถือได้ และไฟล์จะอยู่บนอุปกรณ์ของคุณเท่านั้น |
| เว็บเบราว์เซอร์ | Firefox มี JSON viewer ในตัว ส่วนในเบราว์เซอร์ใดก็ตาม JSON viewer ออนไลน์จะแสดงข้อมูลเป็น tree ที่ย่อ/ขยายได้ |
| Excel | บน Windows ใช้ ข้อมูล → รับข้อมูล → จากไฟล์ → จาก JSON หรือแปลงไฟล์ด้วยเครื่องมือแปลง JSON เป็น CSV ก่อน |
JSON กับ XML ต่างกันอย่างไร
| JSON | XML | |
|---|---|---|
| ไวยากรณ์ | วงเล็บปีกกา วงเล็บเหลี่ยม คู่ชื่อ/ค่า | แท็กเปิดและแท็กปิด |
| ชนิดข้อมูล | string, number, boolean, null, object, array | ข้อความเท่านั้น เว้นแต่จะมี schema กำหนดชนิดไว้ |
| ขนาด | กะทัดรัด | ใหญ่กว่าเพราะมีแท็กปิด |
| คอมเมนต์ | ไม่มี | มี |
| Attribute, namespace | ไม่มี | มี |
| การใช้งานทั่วไป | Web API คอนฟิก ฐานข้อมูล NoSQL | เอกสาร ไฟล์ออฟฟิศ SOAP และระบบองค์กร |
JSON ใน API และแอปพลิเคชัน
Web API ส่วนใหญ่รับส่งข้อมูลเป็น JSON ฝั่ง client ส่ง request พร้อม header Content-Type: application/json เซิร์ฟเวอร์ตอบกลับเป็น JSON และโปรแกรมแปลงเป็นอ็อบเจ็กต์ของภาษานั้นด้วย JSON.parse ใน JavaScript, json.loads ใน Python หรือ json_decode ใน PHP นอกจากนี้ JSON ยังใช้ในไฟล์คอนฟิกอย่าง package.json และ tsconfig.json ฐานข้อมูลเอกสารอย่าง MongoDB และเอาต์พุตแบบมีโครงสร้างของโมเดล AI
ข้อผิดพลาด JSON ที่พบบ่อย
- คอมมาท้ายหลังรายการสุดท้าย:
[1, 2,] - เครื่องหมายคำพูดเดี่ยวหรือคีย์ที่ไม่มีเครื่องหมายคำพูด:
{'a': 1},{a: 1} - คอมเมนต์อย่าง
// note - ขาดคอมมาหรือวงเล็บระหว่างรายการ
- ค่าแบบ JavaScript หรือ Python อย่าง
undefined,NaNหรือTrue
วางข้อมูลของคุณลงในเครื่องมือตรวจสอบ JSON เพื่อดูบรรทัดและคอลัมน์ที่มีปัญหา หรือให้ฟังก์ชันซ่อมแซมแก้ให้อัตโนมัติ
JSON5, JSONC และ JSON Lines
- JSON5 – superset ที่ผ่อนปรนกว่าสำหรับไฟล์ที่เขียนด้วยมือ: รองรับคอมเมนต์ คอมมาท้าย เครื่องหมายคำพูดเดี่ยว คีย์ที่ไม่มีเครื่องหมายคำพูด และเลขฐานสิบหก แต่ parser JSON มาตรฐานอ่านไม่ได้
- JSONC – JSON ที่มีคอมเมนต์ ใช้ในการตั้งค่าของ VS Code และ
tsconfig.json - JSON Lines / NDJSON (
.jsonl) – หนึ่งค่า JSON ต่อหนึ่งบรรทัด เหมาะสำหรับล็อกและการสตรีมชุดข้อมูลขนาดใหญ่ - GeoJSON – JSON สำหรับข้อมูลภูมิศาสตร์ กำหนดไว้ใน RFC 7946
คำถามที่พบบ่อย
JSON เป็นภาษาโปรแกรมหรือไม่?
ไม่ใช่ JSON เป็นรูปแบบข้อมูล: ใช้อธิบายข้อมูล แต่ไม่สามารถมีตรรกะ ฟังก์ชัน หรือคอมเมนต์ได้
JSON เหมือนกับ JavaScript object หรือไม่?
ไม่เหมือน JSON คือข้อความที่หน้าตาคล้าย object literal ของ JavaScript แต่เข้มงวดกว่า: คีย์และสตริงต้องใช้เครื่องหมายคำพูดคู่ และไม่อนุญาตฟังก์ชัน undefined และคอมเมนต์ ส่วน JSON.parse จะแปลงข้อความให้เป็นอ็อบเจ็กต์จริง
สร้างไฟล์ JSON ได้อย่างไร?
เขียนข้อมูลในโปรแกรมแก้ไขข้อความใดก็ได้ตามกฎข้างต้น แล้วบันทึกเป็น UTF-8 ด้วยนามสกุล .json และตรวจสอบด้วยเครื่องมือตรวจสอบ JSON ก่อนนำไปใช้งาน
อัปเดตล่าสุด: