การดู : 0
17/03/2026 14:57น.

EP.13 Go กับ JSON - แปลงข้อมูลให้เข้าใจง่าย!
#โปรแกรมเมอร์
#การจัดการข้อมูล
#Unmarshal
#Marshal
#JSON
#Go
Go กับ JSON - แปลงข้อมูลให้เข้าใจง่าย!
อยากให้ข้อมูลในโปรแกรมดูง่ายและใช้งานร่วมกับแอปอื่นได้ไหม? JSON คือคำตอบ! วันนี้เราจะมาสอนการแปลงข้อมูลเป็น JSON และแปลง JSON กลับมาใช้ใน Go ได้ง่ายๆ
JSON คืออะไร?
JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลที่มีโครงสร้างอ่านง่าย ใช้สื่อสารและแลกเปลี่ยนข้อมูลระหว่างโปรแกรมต่างๆ ได้เป็นอย่างดี ซึ่งนิยมใช้ในแอปพลิเคชันที่ต้องเชื่อมต่อกับ API หรือเซิร์ฟเวอร์
โครงสร้างของ JSON
JSON เก็บข้อมูลในรูปแบบ คู่ของ "ชื่อ": ค่า เช่น:
ในตัวอย่างนี้:
"name": "Alice" เป็นข้อความ (string)
"age": 25 เป็นตัวเลข (number)
"isStudent": true เป็นค่าจริง/เท็จ (boolean)
{
"name": "Alice",
"age": 25,
"isStudent": true
}
การแปลงข้อมูลเป็น JSON ใน Go (Encoding)
การแปลงข้อมูลใน Go เป็น JSON ทำได้ง่ายๆ ด้วยคำสั่ง json.Marshal โดยใช้ struct เพื่อเก็บข้อมูลที่เราต้องการแปลง
ตัวอย่าง:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{Name: "Alice", Age: 25}
jsonData, err := json.Marshal(p)
if err != nil {
fmt.Println("Error encoding JSON:", err)
return
}
fmt.Println(string(jsonData)) // แสดงผล JSON เป็น string
}
ในตัวอย่าง 2/6:
เราสร้าง struct ชื่อ Person ที่มีฟิลด์ Name และ Age
ใช้ json.Marshal(p) เพื่อแปลง Person เป็น JSON
ผลลัพธ์จะได้:
{"name":"Alice","age":25}
การแปลง JSON กลับเป็นข้อมูลใน Go (Decoding)
เมื่อเราได้ JSON มาและต้องการแปลงกลับเป็นข้อมูลแบบ struct เราใช้ json.Unmarshal
ในตัวอย่างนี้: เราแปลง JSON (jsonData) กลับเป็น struct ชื่อ Person ด้วย json.Unmarshal
ผลลัพธ์จะแสดงชื่อและอายุของ Person
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonData := []byte(`{"name":"Alice","age":25}`)
var p Person
err := json.Unmarshal(jsonData, &p)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return
}
fmt.Println(p.Name, "is", p.Age, "years old.")
}
สรุป
ใช้ json.Marshal เพื่อแปลงข้อมูลเป็น JSON (Encoding)
ใช้ json.Unmarshal เพื่อแปลง JSON กลับเป็นข้อมูล (Decoding)
JSON ช่วยให้ข้อมูลดูง่ายและสามารถใช้งานกับแอปพลิเคชันอื่นได้สะดวก
สามารถลองสร้าง struct ที่มีฟิลด์หลายแบบ เช่น ชื่อ อายุ และสถานะการเป็นนักเรียน แล้วแปลงเป็น JSON และแปลงกลับเป็น struct เพื่อดูว่าได้ข้อมูลเหมือนเดิมหรือไม่