หากต้องการพิมพ์ชื่อของฟิลด์ใน struct:
fmt.Printf("%+v\n", yourProject)
จากfmt
แพคเกจ :
เมื่อพิมพ์ structs เครื่องหมายบวก ( %+v
) จะเพิ่มชื่อฟิลด์
สมมติว่าคุณมีอินสแตนซ์ของโครงการ (ใน ' yourProject
')
บทความJSON และ Goจะให้รายละเอียดเพิ่มเติมเกี่ยวกับวิธีดึงค่าจากโครงสร้าง JSON
ไปตามตัวอย่างหน้านี้มีเทคนิคอื่น:
type Response2 struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
res2D := &Response2{
Page: 1,
Fruits: []string{"apple", "peach", "pear"}}
res2B, _ := json.Marshal(res2D)
fmt.Println(string(res2B))
ที่จะพิมพ์:
{"page":1,"fruits":["apple","peach","pear"]}
หากคุณไม่มีอินสแตนซ์ใด ๆ คุณต้องใช้การสะท้อนเพื่อแสดงชื่อของฟิลด์ของโครงสร้างที่กำหนดดังเช่นในตัวอย่างนี้
type T struct {
A int
B string
}
t := T{23, "skidoo"}
s := reflect.ValueOf(&t).Elem()
typeOfT := s.Type()
for i := 0; i < s.NumField(); i++ {
f := s.Field(i)
fmt.Printf("%d: %s %s = %v\n", i,
typeOfT.Field(i).Name, f.Type(), f.Interface())
}
fmt.Println
ดู