要打印 struct 中的字段名称,请执行以下操作:
fmt.Printf("%+v\n", yourProject)
从fmt
package:
打印 struct 时,加号标志(%+v
)添加字段名
这假设您有一个Project实例(在‘yourProject
’中)
文章JSON and Go将详细介绍如何从JSON struct 中检索值.
这Go by example page提供了另一种技术:
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"]}
如果没有任何实例,则需要100来显示给定 struct 的字段名as in this example.
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())
}