如何打印(在控制台)Id,Title,Name等这个结构中Golang的?
type Project struct { Id int64 `json:"project_id"` Title string `json:"title"` Name string `json:"name"` Data Data `json:"data"` Commits Commits `json:"commits"`}
type Project struct {
Id int64 `json:"project_id"`
Title string `json:"title"`
Name string `json:"name"`
Data Data `json:"data"`
Commits Commits `json:"commits"`
}
要在结构中打印字段名称:
fmt.Printf(“%+v\n”, yourProject)从fmt包装中:
打印结构时,加号(%+v)添加字段名称
假设您有一个Project实例(位于“ 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))
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())}
{"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())