12/04/2026 18:19น.

EP.13.1 Go กับ JSON Array - จัดการข้อมูลหลายรายการได้ง่ายๆ!
#การพัฒนาโปรแกรม
#การเขียนโปรแกรม
#Structs
#JSON Array
#JSON
#Go
Go กับ JSON Array - จัดการข้อมูลหลายรายการได้ง่ายๆ!
รู้ไหมว่าเราสามารถเก็บข้อมูลหลายๆ รายการใน JSON แบบ Array ได้? เช่น ข้อมูลคนหลายคน หรือรายการสินค้าหลายชิ้น ใน EP นี้ เราจะสอนการใช้ JSON Array ใน Go ตั้งแต่การสร้าง Array แปลงเป็น JSON ไปจนถึงการแปลง JSON Array กลับมาใช้ในโค้ดได้ง่ายๆ!
ตัวอย่าง JSON ที่เป็น Array
สมมติว่าเรามีข้อมูลเกี่ยวกับกลุ่มบุคคลหลายคน ใน JSON เราสามารถใช้ Array เพื่อเก็บข้อมูลบุคคลหลายคนได้ เช่น:
ในโค้ดนี้ เราจะแปลง struct ที่เป็น Array ใน Go ให้เป็น JSON และแปลง JSON Array กลับมาเป็น struct ใน Go
[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 35}
]
การแปลง Array ของ Struct เป็น JSON (Encoding)
ใน Go เราใช้ []struct เพื่อสร้าง Array ของ Struct และใช้ json.Marshal เพื่อแปลงเป็น JSON
ตัวอย่าง:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
people := []Person{
{Name: "Alice", Age: 25},
{Name: "Bob", Age: 30},
{Name: "Charlie", Age: 35},
}
jsonData, err := json.Marshal(people)
if err != nil {
fmt.Println("Error encoding JSON:", err)
return
}
fmt.Println(string(jsonData)) // แสดงผล JSON เป็น string
}
ผลลัพธ์:
[
{"name":"Alice","age":25},
{"name":"Bob","age":30},
{"name":"Charlie","age":35}
]
การแปลง JSON Array กลับเป็น Array ของ Struct (Decoding)
สมมติว่าเรามีข้อมูล JSON ที่เป็น Array และต้องการแปลงกลับเป็น Array ของ struct ใน Go ให้ใช้ json.Unmarshal
ตัวอย่าง:
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},
{"name":"Bob","age":30},
{"name":"Charlie","age":35}
]`)
var people []Person
err := json.Unmarshal(jsonData, &people)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return
}
for _, person := range people {
fmt.Println(person.Name, "is", person.Age, "years old.")
}
}
ผลลัพธ์:
Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.
สรุป
- ใช้ json.Marshal เพื่อแปลง Array ของ struct เป็น JSON
- ใช้ json.Unmarshal เพื่อแปลง JSON Array กลับมาเป็น Array ของ struct