Um den Namen der Felder in einer Struktur zu drucken:
fmt.Printf("%+v\n", yourProject)
Aus dem fmt
Paket:
beim Drucken von Strukturen fügt die Plus-Flagge (%+v
) Feldnamen hinzu
Dies setzt voraus, dass Sie eine Instanz von Project haben (in 'yourProject
')
Der Artikel JSON und Go enthält weitere Details dazu, wie man die Werte aus einer JSON-Struktur abruft.
Diese Go by Example Seite bietet eine weitere Technik:
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))
Dies würde gedruckt werden:
{"page":1,"fruits":["apple","peach","pear"]}
Wenn Sie keine Instanz haben, dann müssen Sie Reflexion verwenden, um den Namen des Feldes einer gegebenen Struktur anzuzeigen, wie in diesem Beispiel.
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())
}