JSON คืออะไร

post Image

JSON ย่อมาจาก JavaScript Object Notation ซึ่งหลายคนอาจจะงงว่า JSON คืออะไร เกี่ยวอะไรกับ JavaScript ซึ่งจริงๆแล้วมันคือ Standard format อย่างหนึ่งที่เป็น text และสามารถอ่านออกได้ด้วยตาเปล่า ใช้ในการสร้าง object ขึ้นมาเพื่อส่งข้อมูลระหว่าง application หรือ Applications Program Interface (API) โดย format จะมีรูปแบบเป็น คู่ Key-Value หรือเป็นแบบ Array และสามารถนำมาใช้แทน XML format ได้ JSON เป็น format ที่ได้รับการใช้งานจาก JavaScript มาก่อน แต่ปัจจุบันมีภาษา programming หลายชนิดที่เริ่มใช้งาน JSON โดนสามารถสร้างและ แปลง format ไปมาได้

ประเภทของ JSON

  • Number: ตัวเลขเท่านั้น
  • String: Unicode ใช้เครื่องหมาย double-quote (“) เป็นตัวบ่งบอก และสามารถใช้ backslash syntax ได้
  • Boolean: True or False
  • Array: ชุดข้อมูล ซึ่งจะเป็นชนิดใดก็ได้ ใช้สัญลักษณ์ square bracket [var1,var2] เป็นตัวแสดง และคั้นด้วย comma แต่ะลค่าใน array
  • Object: ชุดข้อมูลที่เป็นคู่ Key-Value แบบ strings ใช้สัญลักษณ์ปีกกา {key1:value1,key2:value2} ใช้ comma เป็นตัวแบ่งแต่ละคู่ และใช้ colon เป็นตัวแบ่งระหว่าง key และ value
  • Null: ค่าว่าง

ไม่สนใจ whitespace (ช่องไฟ) มีเพียงแค่ 4 แบบที่อยู่ในกลุ่ม whitespace คือ space, tab, newline (\n) และ carriage return (\r) และไม่มีสัญลักษณ์ comment สำหรับ JSON

 

JSON Schema

JSON Schema ใช้สำหรับแสดง format โครงสร้างของ JSON เพื่อทำ validation, documentation และ interaction control เอาง่ายๆคือการติดต่อไปยัง application เราจำเป็นต้องส่ง request ที่ทาง application ต้องการไปให้ครบถ้วน ซึ่ง Schema จะเป็นตัวบอกว่าข้อมูลต้องมีอะไรบ้าง ซึ่งใช้หลักการเดียวกับ XML Schema (XSD)  ถึงจะไม่มีมาตราฐานของ file extension แต่หลายคนก็แนะนำว่าให้ใช้  .schema.json

 

ตัวอย่าง JSON

{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    },
    {
      "type": "mobile",
      "number": "123 456-7890"
    }
  ],
  "children": [],
  "spouse": null
}

จากตัวอย่างจะเห็นว่าข้อมูลมี attribute หลายแบบมากเช่น

firstName = (String)  John
lastName = (String)  Smith
isAlive = (Boolean) true
age = (Int) 25
address = (Object)  {"streetAddress": "21 2nd Street","city": "New York","state": "NY","postalCode": "10021-3100"}
phoneNumbers = (Array) [{"type": "home","number": "212 555-1234"},{"type": "office","number": "646 555-4567"},{"type": "mobile","number": "123 456-7890"}]
children = (Null Array) []
spouse = null

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com,https://en.wikipedia.org